Merge pull request #1498 from xexyl/outdated-faq

This commit is contained in:
Landon Curt Noll authored and GitHub committed 2023-11-21 09:34:02 -07:00
commit 9fbfa234d6
5 files changed
+48 -19

No files matched your search

+25 -10
View File
@@ -14,21 +14,20 @@ make
./vince
```
Under macOS run from within an console tab (whether xterm, the default or
another) while the X11 server is running.
## Try:
### Try:
```sh
echo "Do or do not. There is no try."
```
When running this in the program's window try hitting space a few times and see
what happens!
## Alternate code:
The [vince.alt.c](vince.alt.c) code of the submission will run on SGI IRIX and
also has the recursive CPP macro (which sneaked in accidentally) removed.
also has the recursive `CPP` macro (which sneaked in accidentally) removed.
### Alternate build:
To compile this alternate version:
@@ -36,9 +35,16 @@ To compile this alternate version:
make alt
```
### Alternate use:
Use `vince.alt` as you would `vince` above.
### Alternate try:
Try it just like `vince` as above.
## Judges' remarks:
This beauteous entry makes use of visual `{}`s and whitespace to instruct the
@@ -53,6 +59,7 @@ Challenge: Try modifying the texture to something of your own design.
## Author's remarks:
### ABUSE OF RULES
* The executable needs to read in its own source code in order to run. As
@@ -64,6 +71,7 @@ able to find it...
* The program abuses severely the whitespace and `{ } ;` exceptions in the
file size limits.
### Requirements
* OpenGL. It works (slowly) with Mesa.
@@ -74,6 +82,7 @@ file size limits.
and the source's name should be the same as the executable but with `.c` on the
end.
### Background
I was annoyed after the last IOCCC because I slaved away on a clever text
@@ -84,6 +93,7 @@ So to one up them, I decided to use OpenGL. It's standard, and most Unix-like
systems these days have either accelerated graphics or else software
rendering.
### Obfuscation
It was a challenge getting the source code below the 2k limit. OpenGL has way
@@ -94,26 +104,31 @@ size to fit under the limit while still having some semblance of a demo.
There are some interesting abuses scattered about.
### Usage
Try hitting the space bar when the program is running.
### For Fun
Try modifying the texture to your own custom design...
### Thanks
Many thanks to John Clemens for testing this on various machines for me.
### Errors you can get
- 0 = no error.
- 1 =
[X](https://en.wikipedia.org/wiki/X_Window_System_protocols_and_architecture)
problem.
- 2 = Can't open [glx](https://en.wikipedia.org/wiki/GLX).
- 3 = Can't open 16bpp visual.
- 2 = can't open [GLX](https://en.wikipedia.org/wiki/GLX).
- 3 = can't open 16bpp visual.
- 4 = can't open source file.
+3 -3
View File
@@ -57,7 +57,7 @@ void Q()
,N ) ) E( 2 ) ; v = glXChooseVisual L , DefaultScreen (y ),b
); s. colormap = XCreateColormap L , u = RootWindow ( y , v->
screen),v->visual, AllocNone ); if ( !(r=glXCreateContext L,v
,N , 1 ) ) ) E ( 3 ) ; strcpy (f , * A) ; strcat (f, ".c" ) ;
,N , 1 ) ) ) E ( 3 ) ; strcpy (f , __FILE__); ;
F = fopen ( f , "r" ) ; s . event_mask = KeyPressMask ; w =
XCreateWindow L,u, 0,0,640, 480,0,v -> depth, InputOutput , v
-> visual , CWBorderPixel | CWColormap | CWEventMask ,& s);
@@ -72,9 +72,9 @@ GL_PROJECTION ) ; gluPerspective ( 60 , 1.333 , 1 , 100) ; J
GL_MODELVIEW); u=glGenLists(1); glNewList (u,GL_COMPILE); H X
); while(a!=81)a=G; G;G;for(x=0;x<6;x++){glBegin(GL_QUADS ) ;
R(); glNormal3f(c,m,n); T(1,1); V T(1,0); V T(0,0); V T(0 ,1)
; V glEnd(); } glEndList(); XMapWindow L, w) ; c=0; for(; ; )
; V glEnd(); } glEndList(); XMapWindow L, w) ; c=0; for(; ; )
{ if (XPending L)){ XNextEvent L, &e); if ((XLookupKeysym ( (
XKeyEvent *)&e,0))&1<<5){ h=10; i[c] =!i[c]; c++; c&=3; } else
XKeyEvent *)&e,0))&1<<5){ h=10; i[c] =!i[c]; c++; c&=3; } els
E(0) } glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ) ;
glLoadIdentity (); gluLookAt ( -2 ,0 ,5 ,0,0 ,0,0 ,0 ,1 ) ; H
GL_LIGHTING); H GL_LIGHT0 ); U GL_POSITION, i + 4 ); U O) ; U
+2 -2
View File
@@ -58,8 +58,8 @@ void Q()
glXQueryExtension L , N , N ) ) E (2); v=glXChooseVisual L ,
DefaultScreen (y ) , b ) ; s.colormap = XCreateColormap L ,
RootWindow (y,v -> screen), v -> visual, AllocNone ); if (!(
r= glXCreateContext L, v, N, 1) ) ) E (3) ; strcpy(f, *A ) ;
s.event_mask=KeyPressMask; strcat(f,".c"); F=fopen(f,"r" ) ;
r= glXCreateContext L, v, N, 1) ) ) E (3) ; strcpy(f, __FILE__ ) ;
s.event_mask=KeyPressMask; ; F = fopen(f, "r" ) ;
w= XCreateWindow L, RootWindow( y, v -> screen ), M , M, 0,v
->depth,InputOutput, v->visual , CWColormap|CWEventMask, &s)
;glXMakeCurrent L , w , r ); H GL_DEPTH_TEST ); if ( ! F )E(
+4 -4
View File
@@ -1217,11 +1217,11 @@ If you do submit a pull request, we ask that each pull request address just one
Note that just because you have a fix does not mean it'll be accepted. This
might be because the author objects or it doesn't fit in some way or another. Of
course if the entry does not work we'll certainly be more inclined to accept the
fix. If it is accepted we'll be happy to credit you in the entry's _README.md_
file. If you're a previous winner we will happily link to your entries; if
you're not we can link to your website if you wish.
fix. If it is accepted we'll be happy to credit you in the
[thanks](/thanks-for-fixes.md) file. If you're a previous winner we will happily
link to your entries; if you're not we can link to your website if you wish.
More generally please see the file [how-to-bugfix.md](/how-to-bugfix.md). Note
More generally please see the file [how-to-help.md](/how-to-help.md). Note
that this file is not a tutorial on how to fix X, Y and Z problems but rather
what to do to get the fix in.
+14
View File
@@ -3032,6 +3032,20 @@ another function that takes 4 args and which is what used to be `main()`.
The alternate versions were also fixed.
## [2005/vince](2005/vince/vince.c) ([README.md](2005/vince/README.md))
Cody fixed this in the case that the program is compiled or linked/copies to
another file name: the code constructed the source code file name in a clever
and more obscure way by copying to the buffer `*argv` and then using `strcat(3)`
to concatenate to it `.c`. But this assumes that the executable is the same name
as the source file which isn't always be true. The author even stated: 'as long
as the source is in the same directory as the executable it should be able to
find it' but the source code file name is not always the same as the executable
with the appropriate extension so this might be called a bug fix as well though
if one runs it from another directory, specifying the directory, it'll not catch
it.
## [2006/birken](2006/birken/birken.c) ([README.md](2006/birken/README.md]))
Cody fixed a segfault in macOS with this entry. The problem was a missing `+1`