@@ -217,10 +220,11 @@ Do **NOT** register more than one account just to try and get around the limit o
Jump to: [top](#)
-
Don't forget that the building of your program should be done
**WITHOUT human intervention**. So don't do things such as:
@@ -246,6 +250,10 @@ For example, one could put in their `Makefile`:
and then include special notes in your `remarks.md` file for
alternate / human intervention based building.
+
+Jump to: [top](#)
+
+
# Guidelines for [Rule 11 - Legal rule abuse](rules.html#rule11-legal-rule-abuse)
@@ -327,6 +335,9 @@ Jump to: [top](#)
# Guidelines for [Rule 12 - UTF-8](rules.html#rule-12---utf-8)
[Rule 12 - UTF-8](rules.html#rule12-utf8)
+
+
+
no longer discourages the use of multibyte UTF-8 characters in `C` code.
@@ -340,6 +351,8 @@ their submissions. In some cases tools have a "Save As" option that will
prevent such trailing control-M's being added.
+Jump to: [top](#)
+
@@ -382,7 +395,6 @@ Jump to: [top](#)
-
We **STRONGLY** recommend you **do** install the most recent release of
[mkiocccentry toolkit](https://github.com/ioccc-src/mkiocccentry)
@@ -482,14 +494,17 @@ Jump to: [top](#)
+
## Overall Guidelines
-
+
These [Guidelines](guidelines.html) are **hints** and **suggestions**, **NOT** [Rules](rules.html).
@@ -586,7 +601,7 @@ Jump to: [top](#)
-## Our Likes and Dislikes:
+## Our Likes and Dislikes
@@ -642,7 +657,13 @@ If you do include a `try.alt.sh` then **PLEASE** remove the `try.alt` rule in th
If you don't have a prog.alt.c, then **PLEASE** remove the `try.alt` rule as well.
+
+Jump to: [top](#)
+
+
+
### About C preprocessor
+
Doing masses of `#define`s to obscure the source has become 'old'. We
tend to 'see thru' masses of `#define`s due to our pre-processor tests
@@ -679,7 +700,9 @@ On 28 January 2007, the Judges rescinded the requirement that the
`#` in a C preprocessor directive must be the 1st non-whitespace byte.
+
### About compilers
+
We tend to **like _less_** a submission that requires either
`gcc` **OR** `clang`. **We _prefer_ submissions** that can compile
@@ -693,9 +716,11 @@ if `gcc` and/or `clang` do not support it. We **suggest**
that you not use any really obscure compiler flags if you can help it.
-
-
+
+
### About nested functions
+
+
One side effect of the above is that you cannot assume the use
of nested functions such as:
@@ -716,7 +741,10 @@ actually implemented in **BOTH** `gcc` **AND** `clang`.
We **DISLIKE** submissions that require the use of `-fnested-functions`.
+
+
### About variadic functions
+
If your submission uses functions that have a variable number of
arguments, **be careful**. Systems implement `va_list` in a wide variety
@@ -734,11 +762,17 @@ In particular, do not treat `va_list` variables as if they were a `char **`.
We **DISLIKE** the use of `varargs.h`. Use `stdarg.h` instead.
+
+
### About I/O
+
We **DISLIKE** the use of `gets(3)`. Use `fgets(3)` instead.
+
+
### About tarballs
+
We tend to **DISLIKE** the blatant use of tarballs in an attempt to simply get
around the extra file number limit. We realize there may be cases where a
@@ -750,13 +784,18 @@ Using a mass of `goto`s to obfuscate your code has become 'old' and is unlikely
to make it through the final rounds, if it even gets that far.
+
+
### About stdlib
+
The `exit(3)` function returns `void`. Some broken systems have `exit(3)`
return `int`; your submission should assume that `exit(3)` returns a `void`.
-### What it means to be small.
+
+### What it means to be small
+
Small programs are best when they are short, obscure and concise.
While such programs are not as complex as other winners, they do
@@ -795,7 +834,9 @@ Your source code, post-pre-processing, should not exceed the size of
[Microsoft Windows](https://en.wikipedia.org/wiki/Microsoft_Windows). :-)
+
### About environment
+
We tend to **DISLIKE** programs that:
@@ -894,7 +935,9 @@ Initialized char arrays are OK to write over. For instance, this is OK:
```
+
### About X
+
X client submissions should be as portable as possible. Submissions that
adapt to a wide collection of environments will be favored. For
@@ -924,7 +967,9 @@ in the your `remarks.md` file. They should also not depend on any
particular window manager.
+
### About Curses
+
One should restrict libcurses to portable features found on both BSD
and Linux curses.
@@ -935,7 +980,9 @@ If you do `#include
` make **CERTAIN** you link in curses (i.e.
+
### Miscellaneous
+
While we recognize that UNIX is not a universal operating system, the contest
does have a bias towards such systems. In an effort to expand the scope of the
@@ -1326,7 +1373,6 @@ FAQ on "[What is the mkiocccentry tool, how do I obtain it and how do I use it](
Jump to: [top](#)
-
## Funšdamental Guidelines