redesign version string Now we have two version nummbers one for the tool and one for the lib. Also the version number is changed everytime the object is rebuild.
Replace getcpy() and strdup() with mh_xstrdup() this harmonise the code. Also fix some bugs, if return value of strdup is not checked.
Replace free() with mh_free0() mh_free0() free's the memmory and set's the pointer to NULL after the free. This avoids doublefree and dereferenc of a non valid poiter.
Drop register storage class
Use sysexits.h for better exit-codes The sysexits header describe some standard exit-codes, which should be used. adios has now a status argument so sysexits.h can be used.
Move #include from h/mh.h to source files Included files should not include further files. Now, only the necessary files are included and not all of them in every file. A large bunch of this work is done, but there are some more nested include files.
Replace done with exit at uip Replace done with exit in most sourcefiles of uip. This makes the code better to read. If the done was overwritten by an externel function atexit() is used instand. send.c and mhl.c are excluded, because need a bit rewrite first.
Completely removed the backup-prefix (,). We move to +trash instead. mhbuild does not create `,foo.orig' but `foo.orig' now. Maybe it should move the file to +trash as well ... this is likely to be changed. Temporary files of bcc mails get removed now.
Removed configure flag --disable-locale and have it always enabled. Todays system are assumed to have locale support.
Require at least 2 chars for `no' variants of switches. This results in: ali -n --> -normalize ali -no --> ambiguous folder -n --> unknown (don't know if this case is good) folder -no --> ambiguous
Removed the altmsglink (named `@') and env var `$editalt' for repl and dist. The env var $mhaltmsg already provides everything. We just get rid of compat redundancy. We also dropped the lstat() check. lstat() is POSIX and we assume any modern Unix system to support symbolic links. Also, there's only one invocation of lstat() left in uip/flist.c.
Renamed -version switch to -Version to remove the conflict with -verbose. Now, `mhlist -V' prints the version and `mhlist -v' lists verbosely. There are only a few switches left that conflict on the first character, apart from the inverted (no*) variants.
Bring in all of the mh-e support that is actually used to be compiled by default, and garbage collect the stuff that is not used. Pulled in from nmh. Thanks to Ken Hornstein. Concerning mmh only: - The FIXME comments about the missing checks for existing drafts. - mh-e support of mmh is not much more than providing the -build switches. It might get dropped in the future.
Removed UCI-specific group leader code from conflict(8).
Explicit checks for return values of strcmp(). The return value of strcmp() is unintuitive for string equality tests. I prefer explicit comparisions against 0. I changed this everywhere.
Removed isprefix() and replaced it with strncmp(). isprefix() had been ssequal(), which had not been what it advertised to be. Now, all this is gone. We could get problems if one of the arguments is NULL, as isprefix() handled this situation, but strncmp() does not. It appears as if this case does not show up in the code.
Renamed all standard sequences (e.g. cur->c) and made them globally changeable The full list: cur -> c first -> f last -> l next -> n prev -> p all -> a new -> b (mnemonic: one beyond the last) They are globally changeable in config/config.c Could be that I'll add the old names again, as convenience aliases.
Relayouted all switch statements: case aligns with switch. Desired style is: switch (n) { case foo: ... }
We have `NULL' in order to not need to write `(char *)0' anymore.
Removed void casts for ignored return values of function calls. IMO, this distracts from the important without being much worth.