This 'bug' was not actually a bug but an improper reading of the author's
remarks. Upon another read later on (today) it became clear what
the author was getting at. It is not what happens upon execution but
rather the layout of the code: if the alternate code (the US specific
version) is a one line of 160 characters and your terminal wraps at 80
columns it will spell out (over two lines):
mainland America
The westley.alt2.c is exactly this. It can be compiled if one has gcc or
a compiler that does not have the limitations of arg types to main()
that clang has by using make alt2 (not make alt as it would fail for
clang but people might want to use the alternate code and in fact the
try.sh script does this) but it has the original limitation that one
needs to have a terminal that wraps at 80 columns (since it has to be
the same length of code). But as that size is not that common nowadays
(and in most cases one would have to resize their window) it's mostly
for show.
Updated manifest, rebuilt .entry.json and index.html.
Updated bugs.md and rebuilt bugs.html.
Because most people have much wider terminals nowadays and since not all
can be resized I have changed the code a bit so that every 80 iterations
(in the final loop) a newline is printed. This way as long as the
terminal is at least 80 columns the program will show the map correctly.
The alt version has been updated for this as well.
The Makefile now does not require one to run 'make whereami' to get the
link: one simply needs to run 'make' or 'make all' or 'make everything'.
For the alt program (the author provided one that I put into alt code
that is strictly for the US) running make alt or make everything will do
the same only it's whereami.alt.
The bugs.md has been updated noting that the terminal must be AT LEAST
80 columns. The README.md file has not been updated which means
referring to the bugs.md has not been done yet either. The Makefile note
about it requiring a terminal that wraps at 80 columns has been changed
to note that it needs a terminal that is at least 80 columns. The note
has been moved to after making the link (actually not a symlink but
perhaps it should be).
For both check args.
For alt move main()'s code to new function as some versions of clang do
not allow four args. Instead main() has two args now, the traditional
argc and argv, and the other two are passed 0.
It was an error to fix the segfault without enough args in 1992/westley
as it does not in fact affect the usability of the program and that's
the only time a segfault should be fixed except by anyone but the author
themselves.
This commit required also changing the alt code (that I added based on
the author's remarks) as well as the README.md, bugs.md and
thanks-for-fixes.md.
Since the third and fourth args of main() were being used as ints I have
made them ints inside main() as clang does not allow the second, third
or fourth args to main() to be anything but char **. An important note
(which the author noted but which I put in the Makefile as well as under
the 'To run:' section) is that the terminal must wrap at 80 columns in
order for this to work right. I had to shrink down the terminal size to
get to show that this change worked okay - it was the simplest way I
could think of to do it.
We we move 1988-2004 entries from all of a year's winning entries
in a single directory to each winner being in their own sub-directory
under the given year directory.