schily 2021-09-18

The "Schily" Tool Box is a set of tools written or managed by Jörg Schilling. It includes programs like: cdrecord, cdda2wav, readcd, mkisofs, smake, bsh, bosh, btcflash, cal, calc, calltree, change, compare, count, cpp (K&R original), cstyle, devdump, dmake based on SunPro Make, fdiff, fifo, fsdiff, hdump, isodebug, isodump, isoinfo, isovfy, label, make, man2html, mt, obosh, od, p, POSIX patch, pbosh, printf, sccs, scgcheck, scpio, scut, sdd, sfind, sformat, smake, sh/bosh (Bourne Shell), spaste, star, star_sym, strar, suntar, svr4.make, gnutar, tartest, termcap, udiff, vctags and ved.

Tags software development build tools utilities
License CDDL
State historic

Recent Releases

2021-09-1818 Sep 2021 15:23 major feature: smake: Fixed a typo in a comment in readfile.c smake: The man page now mentions that the commands called for .INCLUDE_FAILED: should include as argument to the rule command. smake: Fix a bug in the man page for .INCLUDE_FAILED:. It now correctly mentions that .INCLUDE_FAILED: only applies to the "include". SunPro Make: The dynamic macro is now documented in the man page. SunPro Make: The .INCLUDE_FAILED: special target is now supported the same was as in smake. SunPro Make: A new section "Automake Features" has been added. SunPro Make: A new version date has been defined.
2021-09-0101 Sep 2021 16:03 major feature: autoconf: the enhancement to work aounr an incompatible change for SIGSTKSZ on Linux should now work. autoconf: Added new tests to check for /bin/sh, /usr/bin/sh and whether /bin is a symlink. autoconf: Added a new test to check for /bin/posix/sh SunPro Make: all changed sources now explicitly state CDDL version 1.0 only. SunPro Make: Defining "extern char sys_siglist " is now based on HAVE_SYS_SIGLIST_DEF. SunPro Make: Now partially using a new SHELL_PATH definition, that is based on the new autoconf results: HAVE_SYMLINK__BIN, HAVE__BIN_SH, HAVE__USR_BIN_SH. SunPro Make: We are now using HAVE_SIGSET to set up a fallback from sigset() to signal(). SunPro Make: A workaround for the linux getopt() has been removed since we always use our libgetopt that is a Solaris based and enhanced getopt(). SunPro Make: Removed a special HP-UX treatment for the POSIX shell in favor of the new autoconf test result HAVE__BIN_POSIX_SH. SunPro Make/smake: The man page now better describes pattern macro replacement. SunPro Make: The man page now .NO_PARALLEL, .NOTPARALLEL and .PARALLEL in make.1s as well. SunPro Make: A new mode named "SUN" for SUN_MAKE_COMPAT_MODE has been introduced. mdigest: Fixed a typo in the output from mdigest -help All schilytools: The string "Jörg Schilling" is now separate and in a gettext() call.
2021-08-1415 Aug 2021 13:27 major feature: autoconf/Bourne Shell: Attempt to deal with a change in SIGSTKSZ from Linux and try to make bosh conmpile with newer versions of Linux. SunPro Make: Some wide character strings did not have the needed room for the final null byte and caused a core dump on machines with network byte order (e.g. z/OS). SunPro Make: The operators :::= and +:= no longer expand to . SunPro Make: Calling "dmake -x SUN_MAKE_COMPAT_MODE=value" now works. SunPro Make: The pseudo targets .POSIX: and .SVR4: now set all variables that are used to control the operating mode in dmake. SunPro Make: Using the pseudo target .POSIX: now implicitly defaults to DMAKE_ADJUST_MAX_JOBS=M2 as well. smake: While expanding the right side of a macro assignment with the operators :::= and +:=, smake no longer expands to , but rather leaves untouched. smake: The dynamic macros ? and now work for implicit rules as well. smake: is now version 1.6
2021-07-2931 Jul 2021 10:07 major feature: First porting attempt to z/OS. configure: config.sub now supports FreeBSD running on riscv CPUs. configure: The bits in minor_t are now correctly computed. configure: aclocal.m4 had a typo and used #ifdef TIME_WITH_SYS_TIME_H. configure: many changes to avoid C-compiler warnings from the test programs. RULES/MKLINKS: Support for FreeBSD on riscv CPUs was added. incs//xconfig.h: now contains either a #define HAVE_EBCDIC or a #define HAVE_ASCII. include/schily/maxpath.h: now also defines MAXPATHLEN, since this is needed for programs like SuPro Make. smake: A .POSIX: line in the Makefile is now correctly detected immediately. smake: The GNU assignment operator := is now only accepted in .POSIX mode. Bourne Shell: "cd -" now prints the new directory. POSIX requires this. Bourne Shell: "make install" now works wit SuPro Make as well. star: A single Linux xattr entry with a zero length value did disable all Linux xattrs for the related file. ved: ved maxll=79 did sometimes fail to introduce automatic line wrapping past column 79. ved: ved maxll=79 now checks whether the cursor is column 79 before entering a new line character. ved: ved no longer tries to setup default values for pagesize and linelength. ved: ved now aborts the startup if it turns out to be connected to a hardcopy terminal. SunPro Make: The man pages dmake.1 and make.1s now better document the handling of the maximum number of jobs when called e.g. as "make -j4 ...". SunPro Make: the man page make.1s now also mentions DMAKE_ADJUST_MAX_JOBS. SunPro Make: the man page make.1s now also mentions DMAKE_MAX_JOBS DMAKE_MODE DMAKE_OUTPUT_MODE. SunPro Make: DMAKE_STATISTICS has been enabled. SunPro Make: The __DMAKE_M2_FILE__ environment has been documented in the man page. SunPro Make: The parser (while working on :=, ::=, :::=) is now a bit more precise. SunPro Make: The GNU assignment operator := (::=) is now only ccepted in "GNU compatibility" mode or in "POSIX mode".
2021-06-0707 Jun 2021 11:33 major feature: README.compile now mentions that INSBASE=xxx needs a recompile. COPYING now correctly mentions "lndir" as MIT program. RULES/MKLINKS now creates more ARM specific links for FreeBSD. FreeBSD now uses RUNPATH when linking dynamically. RULES/rules.cnf now always tries to make align.h and avoffset.h up to date. RULES/rules.top: NOECHO=@ has been moved to the front to make it effective for all cases. cpp: a new option -help has been introduced. cpp: a new option -version has been introduced. cpp: #ifdef linux and #ifdef __aarch64__ are now supported. cpp: The binary is now installed as bin/krcpp. man2html: was added to CSW packaging. smake: the MAKEFLAGS parser now understands the content from BSD-make. SunPro Make: A new hardlink .../bin/svr4.make is installed. SunPro Make: The word POSIX is now printed in bold in the man page. SunPro Make: temporary files are no longer opened with O_DSYNC to work around a Linux filesystem performance problem. Bourne Shell: the man page now uses a correct notation for " " for the builtin "dosh".
2021-05-1919 May 2021 16:33 major feature: Makefile system: added support for "arm-freebsd". Makefile system: added a new make macro definition NOECHO=@. README.compile now explains NOECHO= and how to use it. README.compile now explains CCC=xxx for modified compilers. autoconf: added a test for __attribute__ ((__noinline__)). include/schily/ccomdefs.h: added a __NO_INL__ for __attribute__ ((__noinline__)). libschily/getfp.c and inc/getfp.c now use __NO_INL__. Bourne Shell: The "ERR" trap is now also triggered by "command not found". Bourne Shell: the fc(1) builtin now handles "fc -l -0" like ksh. SunPro Make: Macros created with ::= are now implemented as a different macro type (GNU assign macros). SunPro Make: Macros created with ::= are no longer expanded. SunPro Make: GNU make ::= based macro assignments are now handled the same idiosyncratic as in GNU make. SunPro Make: The man page now mentions the new operators +:= and :::=. SunPro Make: Command line macros now may use the ::=, :::= and +:= operator. SunPro Make: make -v and make -version now print a new version date. smake: smake "MACRO += value" now works. smake: smake "MACRO::=value" "MACRO:::=value", "MACRO +:= value" now work as well. smake: Version bumped to 1.5
2021-04-2122 Apr 2021 12:33 major feature: The Makefilesystem added support for NetBSD on earmv7. hdump/od: now uses a getargs() mode that supports options like -vto1, wich is required by POSIX. Bourne Shell: gmatch.c: our gmatch.c now supports illegal multi-byte sequences to let "echo *" print everything, even with filenames that have illegal byte sequences. Bourne Shell: word.c::readwc() no longer uses wctomb() but the original multy-byte input sequence. Bourne Shell: struct fileblk now remembers last multi-byte input sequence. smake: We now support the idiosyncratic way, GNU make implements ::=. smake: The new operators :::= and +:= have been introduced in order to add an orthogonal (and thus better) counterpart to the GNU make ::= feature. smake: The option -j maxjobs is now supported, but ignored. SunPro Make: The new operators :::= and +:= have been introduced in order to add an orthogonal (and thus better) counterpart to the GNU make ::= feature, identically to the new smake feature. SunPro Make: We now support the idiosyncratic way, GNU make implements ::=, except that these macros are still expanded at use time. termcap: A new option -e has been added to tell termcap(1) not to ignore the TERMCAP environment in case that it contains a pre parsed termcap entry.
2021-01-0506 Jan 2021 19:50 major feature: Makefile system: a set of bmake configuration rules have been added. bmake however still does not work. Makefile system: Updates makefiles.tar.bz2. libxtermcap: An own termcap data base file in /opt/schily/etc/termcap has been added. libxtermcap: The library now also tries to open /opt/schily/etc/termcap in case that no system termcap database file is present. ved: Added a SOURCE DOWNLOAD section. cal: cal now compiles on Ultrix. Bourne Shell: .sh.path now works on Ultrix. SunPro Make: SunPro Make now compiles on Ultrix (using GCC). patch: patch now calls unlink(to) before trying to copy the temporary output file to the original file name. This makes patch compatible to gpatch in case of readonly target files. cdda2wav: a preconfigured updated "configure" file is now included inorder to support a compilation on target platforms that do not support to call "autoconf".
2020-11-2525 Nov 2020 12:24 major feature: configure: A workaround for some oddities in the C-compiler on the new M1 Macs has been added config.guess: Support for the uname output from the ARM macs has been added. makefiles: A new makefiles.tar.bz2 has been added. libhfs_iso: A workaround has been added against uninitialized data. libxtermcap: A method to report the name of a failing termcapfile was added. vctags: The man page did not install because of a wrong Makefile name. vctags: The SVR4 package meta data now includes vctags. ved/p/termcap/Bourne Shell: The ducumentation for TERMPATH has been corrected. ved/bsh/Bourne Shell: A new set of dotfiles is available. ved: A new colon command vhelp has been added. ved: ved.help and vedsheet.tr have been updated. ved: a minimalistic ANDI terminal description has been compiled in as a fallback. ved: Initially calling ved without file name argument now results in editing with a temporary filename. SunPro Make: Support for new assignment operators ?= and ::= has been added. SunPro Make: The option -x now works and has been documented.
2020-11-0404 Nov 2020 14:58 major feature: Makefilesystem: added a workarounf for newer HP-UX releases. Bourne Shell: The exit code for background jobs is now also kept if the background job terminates while waiting for a foreground job. Bourne Shell: previous changes in jobcontrol caused cat /etc/termcap more to print only the first page of data. Bourne Shell: previous changes in jobcontrol could cause waiting for background jobs to hang. Bourne Shell: the previous changes ion jobcontrol could cause the builtin fg(1) to dump core. bsh/Bourne Shell: the function str2sig() now supports alias names besides the official RTMAX-n ... RTMIN+n with a split in the middle. SCCS: the sccsdiff script did no longer work with the option -u from a change from this summer. star: a typo in ACL and xattr support caused a failure with extremely long path names. smake: support for ::= and ?= macro assignments has been added. SunPro Make: Support for .NOTPARALLEL has been added. ved: the program vctags has been added to schilytools. ved: the version has been bumped to 1.8.
2020-10-0909 Oct 2020 12:41 major feature: autoconf now supports newer itanium based HP-UX. libschily::getdelim() has been made more robust. udiff: now knows that mmap() does not work with size == 0. udiff: do no longer call getdelim() with linebuf != NULL and linesize == 0. udiff: only try to mmap() regular files. SCCS::sethome.c no longertries to access a string bejond the nul byte. Bourne Shell: "wait" now returns 127 if the process does not exist. Bourne Shell: The " /" variable is no longer masked with 0xFF from the builtin wait. Bourne Shell: a better documentation for the exit codes has been added to the man page. Bourne Shell: The exit code from background jobs is now kept for a long time until wait is called. Bourne Shell: Avoid a SIGSEGV with certain background jobs. Bourne Shell: updated to match the constrints from the new POSIX standard for str2sig() and sig2str(). SunPro Make: a "SOURCE DOWNLOAD" section has been added.
2020-09-2222 Sep 2020 11:03 major feature: The Copyright dates in Schily.Copyright have been updated. OpenCSW package meta data has been updated. udiff: is now using mmap() to speed up things. udiff: better malloc() strategy. udiff/diff: files are now opened in bynary mode to support binary diffs on DOS. SCCS: SCCSv6 now supports binary files without using intrinsic uuencode. SCCS: many changes to support raw binary files, also in the SCCS unit test suite. SCCS: admin automatically turns off keyword expansion for SCCSv6 history files with binary content. SCCS: fixed some minor bugs from using mmap() in SCCS: Do not use schilytools-2020-08-12 and schilytools-2020-09-04 to avoid these bugs. SCCS: delta now uses fsdiff (udiff derived) to speed up operation. SCCS: delta has a new option -b to switch back to the old bdiff. SCCS: sccs istext now depends on whether using SCCSv4 or SCCSv6 by default. SCCS: since 2020-08-12 an average of 25 percent performance win was implemented. compare: the man page now mentions it's age to explain that imagemagic introduces unfriendly name space pollution. Our compare exists since 40 years, the program from imagemagic exists since 20 years.
2020-09-0405 Sep 2020 09:15 major feature: The Makefile System now unexports dangerous environment variables like FIGNORE. hdump/od now installs a 100 POSIX compliant link xpg4/bin/od. Bourne Shell: now removes xpg4/bin/sh before creating the link to permit to repeat make install. OpenCSW: many changes to the packet meta data to make the packets up to date. SunPro Make: added several #ifdefs for better portability. configure: config.guess no longer complains about FreeBSD on ARM-64. udiff: now uses getdelim() for arbitrary line length and binary data. udiff: print a warning if a file does not end in a newline. udiff: new links "fdiff" and "fsdiff" are added to the command for POSIX compatible output and SCCS bdiff compatibility. patch/SCCS: some unit test scripts now include "exit" in the trap commands to stop working if aborted via SIGINT. SCCS: the unit tests may again be called from gmake or dmake. SCCS get/delta fixed a bug with files not ending in a NEWLINE that was caused by introducing mmap() recently. SCCS delta now works correct with mmap() if a change appeares at the end of the file. SCCS delta now removes the e.file if it is aborted. SCCS: udiff is now installed as ccs/bin/fsdiff to make it usable by delta as bdiff replacement. SCCS: the -X option with name= (empty argument) parameter now behaves as if name was not used at all. SCCS:wor around a new FreeBSD linker bug that prevents to use COMMON variables.
2020-08-1212 Aug 2020 15:47 major feature: autoconf: added a new test for sys/auxv.h autoconf: added new tests for Linux getauxval() and FreeBSD elf_aux_info() hdump/od: the POSIX switch now works on Linux and FreeBSD using the aux vector. isaexec:The program now works on Linux and FreeBSD using the aux vector. star: cpio byte swap recognition now works with too long names. star: cpio archives with too long names no longer cause a core dump. star: compiles now again on DOS. star: REAMDE.otherbugs updated. cal: now compiles on platforms without i18n support. mkisofs: removed a warning because DOS does not support largefiles. patch: added some #ifdefs for signals missing on DOS. Bourne Shell: added some #ifdefs for signals missing on DOS. smake: now using strdup() for the getenv(MAKEFLAGS) result, since on DOS/DJGPP this value is variant. SCCS: reading the s.files now works using mmap(). This speeds up things by 15 . SCCS: various ehancements to sccslog in order to support converting the CSRG BSD SCCS history into a modern proect oriented style. SCCS: delta no longer computes the checksum in the first pass. This speeds things up by 7 .
2020-07-1819 Jul 2020 12:20 major feature: Bourne Shell: A new hardlink /opt/schily/xpg/bin/bosh is installed to allow to call a strict POSIX compliant shell without a need to call "set -o posix". Makefile system: some forgotten places now use "echo ...; cmd" to permit inlining the echo command without the need to call a shell. smake: smake -help now mentions the new option -a. star: star no longer dumps core when extracting an archive with extremely long pathnames from a UTF-8 based environment. star: The FIFO now may become larger than 2 GBytes. fifo: The FIFO now may become larger than 2 GBytes. cdda2wav: calling the unsupported "cdda2wav -D /dev/cda" no longer dumps core on newer FreeBSD versions. SCCS: all comands and subcommands now have a separate man page. SCCS: The locking now works for longer lasting compound commands. SCCS: Deadlock situations are now detected before attempting to start them. SCCS: The "sccs" frontend program now implements new options -O for enforce the old behavior and -N for enforce new behavior. SCCS: There is now a methd to create a changeset history file from a historic single file SCCS repository. This is an important step before "sccs commit" and similar features can be implemented.
2020-07-0103 Jul 2020 11:14 major feature: star: Backslashes are now honored when looking for the substitution separators in options like -s /from/to/ or -pax-s /from/to/ Bourne Shell: A command with curly braces and redirection in POSIX command substitution did not work. cdda2wav: Since freedb.freedb.org has been shut down forever, the new default database is gnudb.gnudb.org. SCCS: A huge step towards the new project mode has been implemented. Please read the file AN-2020-07-01 for an in depth description on the enhancements. SCCS: The SCCS source is now maintained with a SCCS repository that uses SCCSv6 history files.
2020-06-0909 Jun 2020 15:43 major feature: Makefilesystem: The message "NO shared libs on this platform (yet)" as been made more intuitive to understand. libboshcmd: forgotten code from 2018 for -call added. od: offsets starting with 0x now work. star: a new option -one-file to exit after a first match has been added. star: Some Fifo sync pipe read error messages have been disabled. star: a new option iskip=# allows to specify offset into archive where to start reading. star: a new option mtskip=# allows to fas fordard # blocks in the archive. SCCS: the bulk mode did create double slashes in path names in some cases. SCCS: the bulk mode has a new method to translate the current directory into the adjacent SCCS directory. SCCS: a new environment variable SCCS_NMODE= allows to debuf future features. SCCS: all sccs(1) subcommandsshould now support the NewMode. SCCS: help tries to avoid to confuse people when the locale is not C and no translated help texts are present. SCCS: a better help text for the admin cmmand has been introduced to help people that introduced a space between -i and the filename. SCCS: a new help text has been added for the case when a directory type argument was expected but a file was specified. SCCS: sccs(1) now uses a unified strdup() method. SCCS: the subcommand sccsdiff now works if arguments contain spaces. SCCS: get -p -A ... could dump core in some cases. SCCS: admin now defaults to create SCCSv6 history files if called in new mode (with option -N). SCCS: admin and comb no longer have a menory leak when in multi file mode (NewMode). SCCS: new unit tests for sccs(1) for all subcommands in historic mode, NewMode with in-tree repository nd NewMode with off-tree repository. sdd: the option sectorsize= now only needs to be specified when in -noerror mode and the basic block size is not 512 bytes.
2020-05-2525 May 2020 12:10 major feature: mkisofs: avoid an integer overflow with fs 4GB and Apple -chrp boot. Bourne Shell: unit tests for the ERR trap now work on OpenBSD. Bourne Shell: OLDPWD is now part of the POSIX definitions. star: now compiles on SmartOS with aclutils.h star: a new -pax-s option supports sed(1) type substring rerefences. SCCS the man pages now mention the new -X option SCCS: sccslog and sccscvt now also support - as special argument to read file names from stdin. SCCS: filenames for - are not read via getdelim() to permit nul separators and arbitrary long names. SCCS: sccs init now created the changeset file by default.
2020-05-1111 May 2020 12:50 major feature: The makefilesystem is now able to detect the bsd make program. The makefilesystem now includes makefiles.tar.bz2 for easy reuse of the makefile system. Bourne Shell: The uni tests for the ERR trap now work on Solaris. Bourne Shell: set -- now checks for a nul byte after --. Bourne Shell: set -e no longer aborts inside a function if the return code of the function is used. Bourne Shell: - no longer sometimes incorrectly omits the "e". Bourne Shell: a beautifying bug could cause (cmd) to fail with incorrect syntax. Bourne Shell: A 'while read; do command ; done' loop could hang if stdin was a pipe. Bourne Shell: parameter substitution with spaces in the substitution text now works better. SCCS: a new command "sccsdiffs" is now an alias for "sccsdiff". SCCS: project specific subcmmands now use getopt() to parse options. SCCS: "sccs root" now checks for too many arguments. SCCS: A new libsccs has been introduced. SCCS: the project specific high level subcommands have been moved into libsccs. SCCS: all SCCS commands now call save_args() to be always able to print the command name with error messages. SCCS: "sccs istext" now uses getopt(). SCCS: fixed a double fclose bug with "sccs istext". SCCS: "contains null byte" and "line starts with A" are now distinct error messages. SunPro Make: The man page removed superfluous spaces with the pattern macro expansion example. mkisofs: README.eltrito has been enhanced for EFI boot. mkisofs: isoinfo now detects efi boot.
2020-04-1818 Apr 2020 11:45 major feature: Makefile system: Added support for shared libraries on IRIX. Makefile system: Added support for including a RUNPATH in dynamically linked objects on IRIX. Makefile system: Added support for the new automake features in SunPro Make that help to work around an sed(1) bug on IRIX. Makefile system: Added a unified IRIX compiler driver for 32/64 Bits. Unit test suite: The creation of the seq function now redirects stdout as well because of a ksh bug on IRIX. librmt: some small enhancements in the man pages. smake: A new option -a allows to disable the automake features. smake: archconf.c has been simplified to allow to use the same code in SunPro Make. SunPro Make: archconf.cc from smake::archconf.c is used for new automake features. SunPro Make: A new option -a similar to smake has been added. SunPro Make: Work around a problem on IRIX where ar.h includes an unexpected definition for struct ranlib. SunPro Make: work around a missing prototype for netname2host() on IRIX. SunPro Make: the option -r is now correctly forwarded to sub make programs. star: avoid the unit tests to fail because they did assume to be run in a MET timezone. star: the unit tests now work around a bug in IRIX rm(1) that does not remove -rf long path names. star: work around a bug in dash that was triggered from the workaround for the IRIX rm bug. SCCS: sccslog(1) now accepts errno =! 0 if mktime() on IRIX sets errno without returning -1. SCCS: aded a new unit test for get(1) with excluded deltas. SCCS: Added Z to some files in the unit tests to avoid a Ni id keywords warning. Bourne Shell: The unit tests failed on IRIX because ls(1) on IRIX is on /sbin/ls. Bourne Shell/bsh: signames.c failed on NetBSD from an odd number of realtime signals. Bourne Shell: the ERR trap from ksh88 has been implemented. Bourne Shell: fixed a bug in the set -e behavior since a change from October 2018. Bourne Shell: set -e now works for function calls. Bourne Shell: Fixed a potential buffer overvflow in prs_cntl().
2020-03-2727 Mar 2020 13:00 major feature: The man page for SunPro Make now mentions that the file .make.state.lock may need manual removal. SunPro Make: The file Make/include/mksh/defs.h was changed to avoid a warning with the IRIX compiler. mkisofs: A new option -noatime has been introduced. mkisofs: A new option -creation-date has been introduced. mkisofs: A new option -effective-date has been introduced. mkisofs: A new option -expiration-date has been introduced. mkisofs: A new option -reproducible-date has been added. mkisofs: The option -m has been moved down to avoid a problem with the option -modification-date. mkisofs: various places that used uop to date time now use a unique time stamp that is either the starup time or a time specified via command line.
2020-03-1112 Mar 2020 10:44 major feature: The autoconf test for waitid() has been enhanced to detect a POSIX conformance bug on Mac OS X. psmake: The bootstrap compile environemnt missed a symlink to unsetenv.c and caused a compilation on IRIX to fail. librmt now may be compiled without libschily. libstreamar.4 now mentions where the POSIX.1-2001 TAR extensions are from. libshedit: some #undefs have been added to avoid warnings on Mac OS X. Bourne Shell: set -m now works inside a shell script. Bourne Shell: "case" now supports the ksh "; " fallthrough extension. patch: some definitions have been moved to avoid multiple common definitions of variables. cdda2wav: some macros have been rewritten to avoid clang warnings. cdrtools: The version date has been uptated to 2020. star: the man page now mentions that it is preferred to compile star from the schilytools sources. ved/bosh/bsh: map.c now has better comment for the fallback mappings.
2020-02-1111 Feb 2020 15:46 major feature: Schily.Copyright: Copyright dates updated include/schily/wait.h: C Style changes include/schily/getopt.h: Changed OPT_PLUS into GETOPT_PLUS_FL to avoid clashes. libgetopt: fixed a typo in getopt.3 diff: Now handles seek errors in the file. diff: now copies named pipes into /tmp files before comparing match: match -w could cause a core dump because of a malloc() error. Bourne Shell: A new variable .sh.path returns exec() path of shell. Bourne Shell: new dotfiles.tar.bz2 updated .shrc Bourne Shell: "for i in; do cmd ...; done" is now valid syntax. Bourne Shell: Added a new conformance test for the for loop. Bourne Shell: The call "bosh -version" now prints 2020... bsh: The parser integrity check routine iocheck() could incorrectly print the error: "Caught !iocheck Signal.". fifo: fifo_main.c no longer defines ibs obs as COMMON variables. SCCS: comb.c made the created shell script more secure. SCCS: sccs.c did dump core with "sccs -p foo get test.txt". star: fixed typos in star.1 and star.4. star: fixed typos in header.c. star: translated some German comment into English. libschily: new man pages starthandlecond.3 and unhandlecond.3. libschily: various typo fixes in various man pages.
2019-12-0505 Dec 2019 10:46 major feature: cal(1) has been forgotten to include in the list of target programs. CSW packaging now includes the ta archives with sample dotfiles. CSW packaginf added the programs printf and strar. include/schily/stdio.h: added a workaround for a changed behavior in Oracle Solaris 11.4. libschily: getargs() now includes an enhanced format type: 0.. 9 instead of just 0 and 1. libschily: getargs() fixed a bug that prevented to use options like "-dump+". libshedit: #undef FAST_GETC_PUTC in order to work around the changed stdio on Oracle Solaris 11.4. libgetopt: added "optflags" to the list of exported variables in the shared library. libfind: added a new function walksname(). libfind: incompatible change to use size_t instead of int for fetchdir()/dfetchdir(), sortdir(), cmpdir(). libfind: the major version number has been incremented. libstreamar and star: the unicode conversion code now uses size_t instead of int for length values. Bourne Shell: Makefile did not call Makefile.dot and thus did not install dotfiles.tar.gz. Bourne shell/bsh: hashcmd.c fixed a potential memory leak. Bourne Shell: The man page now mentions that with "set -o hashcmds" in .shrc, comment on column 1 needs a space after the '#' in .shrc. SunPro Make: conditional macro assignment has been done twice in parallel mode as a result of a wrong #ifdef. SunPro Make: added a CSW package for dmake. SCCS: Various programs added support for the new "U" delta type. star: new-volume-script= is now called at the end of every tape, even the last one. star: The man page now mentions that star cli=tar is an alias for star cli=suntar. star: The man page now mentions that star cli=gnutar does not implement GNU option parser bugs. star: star cli=xxx now sets argv 0 to xxx. star: in pax cli mode, star now defaults to -no-fsync. star: star now allows list=file together with -find. star: The new option -dump+ includes the hostname in the meta data of the archive. fifo: new program. bsh/bosh/ved: mapper adds xterm fallbacks.
2019-11-1112 Nov 2019 11:35 major feature: Some minor fixes have been introduced for Ultrix support. A new method has been introduced in the makefilesystem to disable the creation of shared libraries if the platform does not support that. libschily:getargs() new and better man pages have been introduced for the option parser modeled after the UNOS concept from 1980. libgetopt: the paper clip.pdf has been added. libgetopt: support for the POSIX getsubopt() has been added. star: with star -copy, -no-secure-links has been made the default. star: star -diff no longer flags differing atime/ctime values in GNU tar archives that do not include these values. star: star -diff now prints a statistics summary. mkisofs: The TODO file has been updated. SCCS: type fix in diff.c SCCS: A new delta type 'U' for unlink has been introduced in preparation of the project mode. SCCS: admin now supports the option -Xunlink together with -n. SCCS: get now removes existing read-only g-giles if a delta type 'U' is the current delta to be unpacked. SCCS: sccsfile.4 man page now mentions type 'U'. SCCS: changeset.4 man page has been rewritten. SCCS: the SCCS compliance test suite now expects "prs" to fail as 32 bit binary with a SCCS history file that uses a y3000 time stamp. SCCS: The man page changeset.4 now work on Linux where chapter 4 has been renamed to chapter 5. SCCS: admin and delta now support a new option -Xmail=address to add e-mail meta data to a delta. SunPro Make: libmakestate no longer is made on Ultrix as Ultrix does not support shared libraries. SunPro Make: "make -C...." did read the file .make.rules from the wrong directory as -C has been evaluated too late. SunPro Make: The filter to avoid importing -C from MAKEFLAGS has been made more robust.
2019-10-2525 Oct 2019 13:02 major feature: All C programs compile and work on Ultrix. SunPro Make may be compiled with a trick on Ultrix. configure: several tests for workarounds with Ultrix have been added. conf/*: Some more shell scripts added workarounds for the pre-SYSvr2 Bourne Shell on Ultrix. include/schily/wchar.h: now deals with the wide char support on Ultrix as well. include/schily/wait.h: some more workarounds for the Ultrix bugs on sys/wait.h. include/schily/libport.h: Added some more prototypes for Ultrix. libschily: Added a vsnprintf() implementation. libgetopt: getopt() now supports +o and ++long-option. libfind: fixed another problem with command line argument and -name matches. libstreamar star: added new meta data "fsdevmajor" and "fsdevminor". star: Reduce the default FIFO size to 1MB on Ultrix. cdrecord: Reduce the default FIFO size to 1MB on Ultrix. Bourne Shell: no longer test ISO-8859-1 based matches. Bourne Shell: getopts(1) now supports +o and ++long-option in a ksh93 compatible way. ved: fixed a bug in "ved-e" recognition. ved: fixed a bug with writing the .vedtmp files on Ultrix. SunPro Make: many small changes to support a compilation on Ultrix.
2019-10-0708 Oct 2019 12:22 major feature: All C programs (that is all except SunPro Make) compile now on Ultrix. configure: Some shells, e.g. dash do not like " file (cmd)" libschily/resolvepath.c: fixed an endless recursion when a symlink points to a symlink that points to itself. libschily/comerr.c: exit code mapping for ambiguous values now works. smake: Print a less confusing error message for failed commands. bsh: dotfiles TAR is now installed into share/doc/bsh/. bsh/bosh/ved: a problem with renamed dotfiles tar archives has been reverted to the previous working mode. Bourne Shell: NOTFOUND / NOEXEC now always are reported correctly with vfork()d children. Bourne Shell: A new automatic macro " /" proposed by Don Cragun on a POSIX teleconference has been implemented. star: star no longer dumps core from the resolvepath problem. star: A new environment or /etc/default/star variable STAR_SECURE_LINKS= allows to let star default to the old insecure behavior. star: A new environment STAR_NOHINT= allows to disable some warnings. SCCS: delta and admin now use Intmax_t instead of intmax_t to be able to support Ultrix.
2019-09-2225 Sep 2019 17:09 major feature: The bootstrap compilation of "smake" now allows to specify the shell to be used for configure if the default shell is broken. Makefile System: Plenty of changes to support the old UNIX V7 shell that is used on e.g. Ultrix. include/schily/*.h: various changes to support pre-POSIX systems like Ultrix. libschily/match.c: The pattern matcher did no longer support " " after adding support for " :alpha: " and similar. libschily/match.c: Some reordering to support " " for a closing bracket without the need for quoting. libfind: some changes to support "find ./foo -name foo" nd "find ./foo/// -name foo" correctly. libfind: "find -L dir" now works in avoid stat() mode on Linux. libfind and some others: Work around a strange bug in Untrix that defines S_IFPORT == S_IFIFO. patch: fixed a sprintf() string to get arguments for ed like patches in the right order. printf: Permit to support formats like a and A on Solaris for the standalone version. SunPro Make: Added support to find support files when installed as /opt/onbld/bin/i386/dmake for a OpenSolaris-ON compilation. star: star -find now better deals with -find -xdev. bsh/sh/ved: dotfiles now have a .termcap entry that maps backspace to DEL on the Solaris console. cal: Fixed a typo for the GREGORIAN switch day for Prussia. cal: GREGORIAN= now also supports yyyy-mm-dd cpp: avid a core dump with -2147483648 / -1 Bourne Shell: avoid a potential endless loop when a TCP/IP connection for the login dies. SCCS: diff now is a bit faster since it no longer tries to close directories that never have been opened. ved: Searching for matching now works again.
2019-08-1315 Sep 2019 14:34 major feature: A makefile rule for OpenBSD on Sparc64 has been added. schily/nlsdefs.h now casts the dummy variant of gettext() to char * to avoid a warning. libschily: Various emulations for *at() functions did use stat() internally but did not use large file support while doing so. cpp: A new option -B allows to honor C++ comment. cpp: the environment SUNPRO_DEPENDENCIES is now documented. cpp: The exit code is no longer incremented by one for every error but set to 1. cpp: #error now prints an error message on stderr and exits immediately. cpp: A new option -p works similar to -T but gives additional warnings for extra tokens on control lines. cpp: Fixed a bug with the character 0xFE introduced in 2018. cpp: A basic set of conformance tests has been added in order to avoid above problem in the future. cpp: Now using version 2.3. star: Did not compile on platforms without ACLs anymore. star: Avoid a warning when unpacking -dump type archives on FreeBSD where we have non-contiguous minor device numbers. mkisofs: The Apple attrinfo structure has been fixed. SunPro ake: "using namespace std;" has been made conditional to allow compilation in OpenSolaris-ON with SunPro CC compatiility for version 4. sake: Make GCC quied with a macro inside fastaloc()
2019-07-2223 Jul 2019 09:11 major feature: RULES/*: changes CURDIR to CURWDIR to avoid a clash with GNU make. RULES/*: Added symlinks for FreeBSD on PowerPC. inc/avoffset.c: Added a message that no stack scanning is not an error. star/pax: "pax -pe" no longer sets the xattr flag to avoid an error while compiling OpenSolaris-ON. SunPro Make: The man page now explains various undocumented options. SunPro Make: The man page now includes the options -j, -m, -R from the parallel make features. SunPro Make: Avoid a core dump when make is aborted via C while reading the makefile. SunPro Make: make -C has been implemented in a GNU make compatible way. smake: smake -C is now GNU make compatible as it now supports multiple -C options and the CURDIR variable.
2019-07-1515 Jul 2019 14:02 major feature: star: the compress unit test no longer fails on Cygwin because of the defective gzip in Cygwin. star: inremental backup unit tests no longer fail with uid mismatch. star: comparing timestamps now knows about NTFS with a 100ns granularity. star: New diffopt: "dnlink" allows to switch off link count comparison for directories. star: incremental backup unit tests now use diffopts=!dnlink to make them work on Cygwin. star: star -c -H exustar -acl -xattr-linux . caused file not found messages for extended attributes. star: star -diff now compares ACLs as well. star: very long pathnames for extended attributes and ACLs now work. Bourne Shell: Setting OPTING now resets the variable that tracks combined option strings. Bourne Shell/bsh/libshedit: ..TAB again expands to ../ ved: fallback to stderr, if /dev/tty cannot be opened. SunPro Make: include again correctly handles the # comment sign.
2019-06-1313 Jun 2019 12:40 major feature: cal: The code now also deals with julian/gregorian changes that affect December and January. cdrecord: The man page now lists the supported media types and mentions preferred media type. patch: #ifdef HAVE_RENAME has been removed as an emulation for rename() exists in libschily. star: A bug inthe FIFO synchronization code has been fixed. The related problem happened mainly on Linux with very small multi-volume archives. star: The fifo debugging output has been made more readable. star: An extremely rare FIFO deadlock on Linux with very small multi volume archives has been fixed. star: Version bumped to 1.6.1 Bourne Shell: A new option "set -o globskipdot" allows to hide "." and ".." from glob results. bsh: The default globbing behavior has been made compatible to bosh.
2019-05-2828 May 2019 15:32 major feature: New autoconf test for ed/red. cal: the UNIX calendar program has been added cal: The UNIX calendar now support any switch date from Julian to Gregorian via the environment GREGORIAN. patch: Now uses the autoconf results for ed/red. Bourne Shell: now checks scripts for binary data on the first line. SCCS: better documentation for the "No id keywords (cm7)" warning. SCCS: The unit tests now better work on platforms with rotten libc that does not deal with dates before 1/1/1970 correctly. SCCS: A new error code for time/date conversion errors has been introduced.
2019-04-2929 Apr 2019 13:27 major feature: libschily: the waitid() emulation now returns SIGCONT in case of WIFCONTINUED() libdbgmalloc: new DBG_MALLOC_MARK() macro to find filename and line number of callers even for callers hidden behind a common portal. libdbgmalloc: a problem with stdio.h in debug mode has been fixed. libshedit/bsh/Bourne Shell: TAB filename completion now uses strstr() instead of the pattern matcher and avoids problems with meta characters in filenames. libparanoia: now uses DBG_MALLOC_MARK(). libparanoia: README.interface is now up to date. calc: prints an error message in case of ferror(stdin). cdda2wav: better fallback if drive does not support C2errors. cdda2wav: avoid a strncpy() with a string copied to itself. cdda2wav: the version string now always includes the date. readcd: a new option spt=# allows to limit the sectors per transfer. libfind/star: verbose listing restructured to make a future pac -o listformat easier. libfind/star: The mandatory record locking "l" mode is now printed the same way as ls(1) does. gnutar: the --help output of the emulation now prints to stdout like the original. gnutar: The man page now mentions that GNU tar -g/-G did never work. star: Added unit tests for incremental backups/restores. star: new version date 2019-04-01 Bourne Shell: "trap -- ..." now correctly handles "--". Bourne Shell: trap now supports a new option -p as agreed on in the 2019-04-11 POSIX teleconference. Bourne Shell: more correct job control for "(bosh)". Bourne Shell: SIGSEGV handling now finally fixed in POSIX mode. Bourne Shell: "trap cmd INT" now works for interrupts on the PS1 command line even in line edit mode. Bourne Shell: "trap cmd INT" now works even in job control mode.
2019-03-2929 Mar 2019 11:34 major feature: configure: Added a workaround for Mac OS linker bug that creates stray *.dSYM directories. Makefile system: "make tests" now implies "make all". README.compile: now explains how to disable random unit tests. libschily: gethostname() emulation now returns EINVAL for len 0. libschily: lutimens() no longer returns ENOSYS but e.g. ENAMETOOLONG if lstat() fails. Bourne Shell: "readonly", "export" and "local" now expand the tilde. star: Fixed a wrong error message introduced from the openat() conversion. star: several forgotten fields of the tar header now support base-256 encoding. star: star.4 now mentions which fields support base-256. star: added reference archives for the ultra compat ACL encoding format introduced in 2017. star: now also checks for linux/fs.h instead of ext2/ext2_fs.h. star: support for new BSD and Linux file flags has been added. star: The old star format no longer causes a warning when plain files from *BSD are imported on a UNIX with contiguous minor device bits. star/strar: the iconv() code now correctly handles E2BIG with LC_ALL=C. star: Added unit tests based con compatibility test scripts from Michal Górny. star: the compression warning is now correctly suppressed for all possible compressions where it has been suppressed for gzip already. star: Support for the "lzma" and "freeze2" compression has been added. star: New unit tests for supported compression methods have been added. star: a new first parameter cli=xxx allows to select all suppoirted command line interfaces even when star was called as "star".
2019-03-1111 Mar 2019 17:20 major feature: New include file include/schily/type_val.h. bsh/libshedit: the "TAB filename expansion" added the character '-'. libgetopt/Bourne Shell: added an #ifndef __CYGWIN__ to deal with broken Microsoft linker. compare: The man page is readable again. mkisofs: Fixed a typo in the man page related to the option "-sectype". star: Support for base-256 numbers in timestams and uid/gid has been added. star: The function stoli() added a new parameter "fieldwidth" to better deal with broken archives that miss field separators. star: extraction of illegal 32 byte uid/gid names now works. star: a new function istarnumber() is used to do better heuristics on what a TAR archive is. star: added new testarchives: testscripts/not_a_tar_file1 and testscripts/not_a_tar_file3. star: fixed a recently introduced bug in the FIFO related to extracting multi-volume archives. star/libschily: Added new error checking codes: "ID and "TIME". star: Creating multi volume archives without using the FIFO no longer dumps core. star: Creating multi volume archives with a very small volume size no longer hangs star. star: Suppress the "FIFO Sync pipe read error message" in case star is terminated with an error. star: avoid a core dump with multi volume archives introduced in May 2018. star: avoid mtime=1 headers with multi volume headers. star: star.4 man paged enhanced. star: ACL reference archives have been added to encourage GNU tar to follow the reference.
2019-02-1818 Feb 2019 13:12 major feature: Star-1.6 has been published. Two more FIFO problems (mainly visible on Linux) have been fixed. In total more than a billion tests have been run to verify the current implementation of the FIFO. smake (psmake) a symlink to libschily/strnlen.c was missing. Bourne Shell: another bug caused by the use of vfork() has been fixed: trap cmd EXIT could be called when a called command could not be found. Bourne Shell: __growstak() now always calls realloc() and thus may make the shell up to 15 faster.
2019-01-2223 Jan 2019 12:03 major feature: include/schily/values.h: new include file. include/schily/dbgmalloc.h: added more prototypes. libdbgmalloc bsh: alloc.c now also prints the caller information in the function aprintlist(). libstrar star unicode.c: iconv() may return 0 in case of non-convertable chars. all: Added many /* FALLTHROUGH */ and /* NOTREACHED */ comments to make Coverity silent. libschily::fnmatch.c: added a forgotten fix for if/then/else nesting. libschily::fnmatch.c: first attempt to support = ... = and . ... . . calltree: The lexer no longer goes into an endless loop if there is an EOF in the middle of a token. cdda2wav: replaced some strcat() calls by strlcat() calls. cpp: cpypre.c the fallback file for platforms without "yacc" no longer tries to include "values.h". mkisofs: a help regarding to call "iconv -l" is now printed in more cases. star: Support for zstd(1) has been added. star: A rare hang in the FIFO is now avoided. star: Avoid to die from SIGPIPE on Linux. star: FIFO debugging now prints more information. star: Added a workaround for a FIFO sync problem where read() returns 0 even though a message was send. star: A FIFO EOF detection bug that was triggered by a context switch is now avoided. star: The dynamic PATH buffer no longer grows by 2 bytes for every archived file. star: better commend for creating CPIO CRC archives. star: zero the ACL structure to make sure there is no uninitialized data. star: Fixed a typo (if (path- ps_path == ' 0') instead of if (path- ps_path 0 == ' 0'). bsh/Bourne Shell/star: hop_dirs() removed dead code. Bourne Shell: Added a range check for OPTIND. Bourne Shell: avoid to call catpath() with a NULL pointer for path. Bourne Shell: "builtin -d ..." did access free()d memory. Bourne Shell: jobs.c: avoid a potential buffer overflow. Bourne Shell: print.c::prt_cntl() did not print non-printabl chars. Bourne Shell: xec.c: the reserved word "time" could access unintialized memory with J. SCCS: fixed Coverity bugs.
2018-12-2121 Dec 2018 12:56 major feature: Added a workaround for a Solaris includefile bug related to unsigned chars and CHAR_MAX/CHAR_MIN. Bourne Shell: The whole shell is not exited (required by POSIX) if a failing command substitution is the right side of an enviroment assignement without following command. sdd: added a better message in retry mode. sdd: added a new option secsize=# to control the basic block size. SCCS: the prs man page is now less wide and fits into 80 columns. SCCS: libcomobj::bulkprepare() added a missing '/' after the working directory. SCCS: sccs: makefile() no longer detects SCCS/a.file as valid s.file. SCCS: sccs: makefile() a new mode has been introduced in order to later convert sccs(1) to use the -N option in the low level programs. SCCS: sccs: Now using strdup() instead of own code. SCCS: sccs now has a new subcommand "root" that prints the project set home directory. SCCS: libcomobj: the get function has been moved from admin(1) to libcomobj. SCCS: delta now supports -k and -N+. SCCS: delta(1) now may use the get function from libcomobj when -N+SCCS was specified. SCCS: libcomobj::parseN() now recognises a space character as a dummy placeholder for -N flag characters. SCCS: sccsdiff: the shell script is now able to deal with spaces in the -N option. SCCS: all programs now use gettext() for the -version output. SCCS: sccslog: The program now uses setlocale() and gettext(). SCCS: the sccsfile man page now contains an overview on all files used by the SCCS suite. SCCS: The man pages now contain a section "SOURCE DOWNLOAD" with source download instructions. SCCS: the sccslog man page fixed a typo that caused .PD 0. SCCS: New version string says: 5.09 2018/12/18.
2018-12-0606 Dec 2018 15:03 major feature: libfind compiles again on platforms without vfork(). SCCS and patch: unit tests with random now may be deactivated with environment NO_RANDOM=TRUE. smt -wready: now only retries operations if they really fail. star: hole.c removed a memory leak. star: macro scopy() now without final semicolon. SCCS: libcomobj: a parser for SCCSv6 flags has been added. SCCS: libcomobj: a parser for SCCSv6 global meta data has been added. SCCS: libcomobj now frees line buffer from getline(). SCCS: all programs that parsed SCCSv4 flags now also parse SCCSv6 flags and meta data. SCCS: prs: New keyword :Gp: prints initial path. SCCS: prs: new keyword :Gr: prints unified random. SCCS: admin no longer leaks file descriptors. SCCS: admin new options -XGp and -XGr allow to control initial path and random. SCCS: comb now retains initial path and random. SCCS: val and libcombj::dodelt() now check for backgoing clocks at ns level. SCCS: bulk mode handler for -N option got major enhancements and fixes. SCCS: all low level programs (except what) now support -N. SCCS: many new unit tests for the -N bulk mode. SCCS: we are now very close to be complete with the upcomming project mode.
2018-11-2223 Nov 2018 13:38 major feature: This is a new stable version as it finally fixes problems on Linux with "smake LINKMODE=dynamic" and versioned libraries. Linker mapfiles are now reversed using "sort -V" on Linux and "tail -r" on NetBSD to work around a GNU linker bug. libgetopt now uses "opt_sp" instead of "_sp", see Bourne Shell. libschily::resolvenpath() works better when a path component does not exist. libschily::format() no longer overflows a buffer with " .*s" with a fieldwidth of 8192 or greater. linfind: -exec ... now permits simple non #! shell scripts as commands. libxtermcap: avoid some buffer overflow with bad guys data. cdrecord: better document -raw96 as best audio recording mode. star: compiles on DJGPP again. ved: reworked documentation for better readability. udiff: fixed typos in source and man page. Bourne Shell: now uses "opt_sp" instead of "_sp" to avoid using the getopt() from closed Solaris libc that misses some features. sccs: fixed a malloc() related bug that could cause a core dump with some "sccs -R" command lines with several file type arguents. SCCS: "sccs add" is now able to create canonic project root related names for all types of file path arguments. SCCS: getline() now uses getdelim() to permit future SCCS versions to support binary data without uuencode. SCCS: all programs now also support the option "-version" besides "-V" and "--version". SCCS: the get(1) man page now correctly describes the differences between the POSIX variant and the SVr4 variant. SCCS: delta(1) now supports a new option "-Xprepend" in preparation for the performant treatment of the upcomming changeset file in project mode. SCCS: admin(1), delta(1) and get(1) did already support a -N option, now all SCCS command support that option on preparation of the upcomming SCCS project mode. SCCS: comb(1) is now able to create SCCS v6 history files. SCCS: val(1) now supports -v to print history file type. SCCS: Version is now 5.09. termcap: many checks against buffer overflows have been added.
2018-10-3030 Oct 2018 14:37 major feature: Fixed a bug with shared libraries on OS400. libschily: ovstrcpy() is a new function that was in many programs before as static function. libfind: dirfd() is no longer called when dirfd() is not present. libfind: the time parser now supports "now" as a keyword. libfind: new primaries -chatime, -chctime, -chmtime allow to modifiy time stamps in struct stat. libfind: a new primary -chfile allows to write back modified struct stat data. sfind: -chown, -chgrp, -chmod are now available since they make sense with -chfile. count: fixed a minor bug with illegal multi byte chaacter sequences. ved: The code now may be compiled to convert multi byte characters to wide characters. This is a preparation for UTF-8 support. Bourne Shell: locale support is no longer disabled when /usr/lib/locale is missing on a non-Solaris platform. Bourne Shell: "repeat -help" no longer prints 4 usage lines. star: Addded the keyword "volatile" to the FIFO code to avoid problems with modern compilers. star: separated a flag variable into three variables to avoid problems with concurrent != and = ops in the FIFO. star: "star -c" aborted via C now results in exit code != 0. star: Added code to debug a hang FIFO. star: the default -secure-links mode now only blocks symlinks that point outside the current working directory. star/mkisofs: the new libfind enhancements are now mentioned in the man page. p: The pager no longer reduces the line width by one if :am: is set and :xn: is set at the same time (xterm). termcap: a new option -oneline allows to output all termcap entries as one single line per terminal.
2018-10-1111 Oct 2018 13:56 major feature: OS400 support is now complete. Added support for "pcc" on Linux (beware of the pcc compiler bugs). libschily: match.c avoids a buffer overflow with some pathological patterns. libschily: fstream packet added an aux pointer in the data structures. libschily: avoid a name clash on Linux with some stdio functions. libschily: major version is now 2. libfind: -xdev changed it's behavior to follow a POSIX deviation from UNIX. bsh/Bourne Shell: endless alias recursion is now prevented on the 2nd word of the replacement as well. Bourne Shell: recursive begin alias expansion no longer results in unwanted alias expansion. Bourne Shell: 'case "" in "")' now works in POSIX mode. Bourne Shell: better parameter expansion with double quotes in the parameter string. Bourne Shell: set -e now works much better. compare: new options begin1= and begin2= have been added. smake: fastalloc() no longer causes a core dump on Sparc systems (introduced with nanosecond support). smake: autoconf support now knows about OS400. SunPro Make: dmake -m no longer gives a warning. ved: avoides a name clash on OS400.
2018-09-2626 Sep 2018 15:33 major feature: Schily.Copyright: now mentions all projects and recent Copyright date changes. RULES: CFLAGS= is now set empty by default to avoid wrong optimization level from make defaults. README.compile et al: mail addresses made recent. ./configure: The dummy conficure now exits with code 0 to help people who believe it is using a GNU build system. Makefile system: First attempt to support OS400 phase i (based on AIX). configure: corrected fallback for timestruc_t. Unit test system: new diff options allow to ignore white space differences in the output. psmake: Added a forgotten link for format.h. libschily: format()/printf() now honor format flags for floatingpoint formats. libschily: format()/printf() added new code for the g-float format. libfind: Added a new flag WALK_MOUNTPLUS that reports a mount point but does not descend into it. libfind/sfind/bsh/Burne Shell: find now supports a new primary -mount+ that may become the future -xdev when POSIX is ready with the standard change. Bourne Shell: printf now supports multi byte characters for the '"c' character format. Bourne Shell: printf 0b now works correctly and prints nothing. printf: exit code is now != 0 in case of errors. ved: various enhancements to prepare future support for multi byte characters. ved: A bug introduced in the last release as a result of multi byte binding changes has been fixed. ved: The charcter input has been restructured in order to get a new layer that cleanly allows to have wide characters above and multi byte chars below. ved: major overoul of the man page. count: Support for multi byte characters and the option -m was added. star: renamed an interal function getpriv() that was in name conflict with OS400. Bourne Shell/bsh: avoid a core dmp with unescaped pattern meta characters in a filename while hitting TAB.
2018-09-0404 Sep 2018 11:03 major feature: libschily: the chmod perm parser now works correctly in assignement mode when the "who" part was not specified. libschily: The ascii to unsigned long converter now permits negative values as required by POSIX. libschily: work around a GCC bug that caused the first character of the string "inf" to be thrown away in printf(). libschily: printf() now prints "inf"-"nan" instead of "(Infinity)" and "(Nan)". libfind: -perm +mode has been reduced in acceptance as "+u" is a POSIXly valid chmod permission. libfind: -perm /mode is now supported as an unrestricted alias for -perm +mode. libstreamarchive/star: The documentation for the binary version of uname/gname/path/linkpath was now added. bsh/Bourne Shell/star: avoid a possible core dump with very long chdir() parameters. Bourne Shell: The printf conformance tests that need "od" now use a better sed filter to be able to deal with non-POSIX versions of od (e.g. on Linux/NetBSD). Bourne Shell: The conformance tests for printf now contain tests for negative numbers. Bourne Shell: The conformance tests that check the sh -x output now set PS4 to avoid wrong results from users that export a non-standard PS4 value. star: "star -c H=exustar -pax-o binary" now created unencoded strings in the POSIX.1-2001 headers. star: the time stamp setting has been reworked and gives now correct results with symbolic links. star: star -x -to-stdout no longer tries to set time stamps to 1/1/1970 in case of errors. star: The option -secure-links has been made the default to make star more secure. ved: avoid a coredump if the .vedtmp file contains a negative file offset.
2018-08-2424 Aug 2018 14:59 major feature: configure now works around a possible gcc installation bug on Gentoo. rules.conf.in has now better comment Makefile system: Th smake specific rules are now closer to the rules used with SunPro make and gmake. Makefile system: the man pages and other localized files are now created with "make all" already. This avoids that a "make install" that usually needs root privileges creates root owned files in the build tree. CFLAGS and CPPFLAGS are no longer "owned" by the makefile system. This help people who do not read documentation. libschily: several functions have been missing from the linker map file and caused these functions to be hidden once versioned libraries work. libfind: new primaries -newerat, -newermt, -newerct. strar/libstreamar: better eror messages for non-plain files when archiving files without meta data. star: the star archive format man page has been updated. Bourne Shel: the SVR4 Bourne Shell compile variaht has been renamed from "osh" to "obosh'. p: When in UTF8 mode, there is no longer an endless loop at the end of the file under some rare conditions. p: When in UTF8 mode, ISO-8859-1 characters are printed as expected instead of ?. ved: The character 0xFF (ij ligatire is now printed instead of being interpreted as DEL alias as usual in the early 1980s.
2018-08-0707 Aug 2018 14:25 major feature: Makefilesystem: Work around a SunPRO CPP bug that rejects tokens with more than one dot. Makefilesystem: Added a workaround for a GNU linker bug that previously prevented to create versioned shared libraries on Linux. libschily: Avoid an endless loop from fgetline() with too small buffer. libfind: added a new primary "-call" that allows to call back into the program instead of calling exec(). Bourne Shell: the builtin "find" command now supports "-call" to directly call code in the shell. This is approx. 40x faster than -exec. star: using -xattr now prints a warning when the local platform does not support NFSv4 extended attributes. star: Linux-type xattrs are now supported on Mac OS X also. star: Fixed a bug from schily-2018-07-16 that caused a core dump with "star -diff". star: Y/N answers now read up to a newline even with long answers. bsh/libshedit: reordered some #includes to avoid a warning with fdopendir() on MacOS X. SunPro Make: The GNU linker does not like empty linker map files.
2018-07-2525 Jul 2018 10:22 major feature: include/schily/stdint.h: the TYPE_MINVAL() macro avoids warnings with newer compilers. libschily: make the *at() emulations work after an ENAMETOOLONG on a platform without /proc. libschily: added openat64() and fstatat64() emulations. Bourne Shell: Now works with long directory names on HP-UX-10.20 with a defective getcwd(). Bourne Shell: dotfiles.tar.bz2 now contains a HOME/.shrc example file that no longer causes warnings from the FreeBSD ash that kidnapped our file name, but does not implement our features. star: The support for very long path names is now complete. star: "star -c" is now nearly as fast as "star -c -find", since it now uses fstatat() instead of lstat() when possible. star: incremental restores previously needed root privileges and now work without root privileges with "partial" private user dumps. star: new option -partial allows to restore partial dumps without permitting other problems at the same time. star: -xattr is no longer permitted as an alias for -xattr-linux, since we start to implement NFSv4 xattrs soon. SunPro Make: Some changes to help to compile it on older FreeBSD versions.
2018-07-1616 Jul 2018 12:38 major feature: configure: now checks for Linux xattr support in libc. include/schily/fcntl.h: #define O_SEARCH O_PATH since Linux people do not read standards. many programs now use O_SEACH instead of O_RDONLY when opening fd's for *at() type syscalls. Bourne Shell: exit now causes the .hostory file to be updated. Bourne Shell: avoid a core dump with missing HOME. Bourne Shell: An updated dotfiles.tar.bz2 includes an updated ".shrc". Bourne Shell: signal name printing now always assumes decimal radix and avoids the need for libschily. Bourne Shell: getcwd() now again calls the workaround for a Solaris kernel bug. Bourne Shell/bsh: very long pathnames now also work with absolute path names. Bourne Shell: more printf concormance tests froM Sven Maschek. star: /etc/default/star now depends on INS_RBASE. tartest: Added (LIB_INTL) to make it compile on FreeBSD again. star: The maximum path length is now INT_MAX. star: All path related system calls now use special l*() wrappers that support very long path names. star: All basic functions now support very long path names, use "star -c -find" as long as "star -c" still uses static path name storage.
2018-07-0202 Jul 2018 12:56 major feature: Add link to new include file that is needed to compile the smake bootstrap on DJGPP. Bourne Shell, bsh and libshedit: the file name expand code now supports arbitrary path length on modern OS. Bsh and Bourne Shell: cd(1) and pwd(1) now support much longer pathnames (virtually unlimited but limited to 8k on bsh and 128 * PATH_MAX on Bourne Shell). Bourne Shell: added a workaround for a Solaris kernel bug with getcwd(). Bsh and Bourne Shell: The test(1) builtin now uses the new code that allows unlimited path length. Bourne Shell: A new Bourne derivative "pbosh" has been created that implements just the minimal POSIX features for portability tests.
2018-06-2526 Jun 2018 11:24 major feature: Make things compile with DJGPP again. Libschily: a new set of gt*() and fgt*() functions with gettext() support have been added. libschily: fgetstr() did not stop if buffer was too small. libfind: Better ENAMETOOLONG discovery added. star: First attempt to implement support for unlimited file path length. star: iconv() results are now nul Byte terminated. star: several new comexit() callbacks give more uniform behavior in case of errors. star: man page now prints 'tar 0' in bold. star: SELinux support has been added. star: bumped to version 1.5.4. star: fixed a typo in ACL handling that could cause a core dump in rare cases. star: all strings are now subject to a translation via gettext(). cpp: Now avoids an overflow while parsing a #line statement. cpp: Now avoids an overflow while computing a hash - make compiler quiet only. cpp: The character 0xFE in the input file no longer causes strange results in macro expansions. cpp: avoid a core dump from a #if a/b statement. patch: converted a strange S_IFREG into standard code. SCCS: #undef INS_BASE makes K R compiler quiet. Bourne Shell: corrected a string stack handling error while creating the job list entry.
2018-06-1111 Jun 2018 17:12 major feature: libschly: fixed a bug in breakline(). libschily: added a waitid() emulation. librmt: added a way to configure the remote shell and the remote tape server path. libfind: now using fchdir() to speed up things. libfind: STRIP_LDOT now works better. libfing: treewalk() now works even without WALK_CHDIR. star: Added (LIB_ICONV) to Makefile. star: dotdot atacks are now also detected if they are based on DOS filesystem semantics. star: Added a new check for the exit code of the compress program. star: A hard EOF on input now results in a non-zero exit code. star: Now defaults to use "ssh" for the remote tape interface. star: There is now a way to make -no-fsync the default behavior to avoid slow operation on platforms with slow buffer cache. tartest: Now all warning go to stdout to let them appear on the same stream. calc: fixed a bug in xbreakline(). calc: left shifting signed integers is now casted to avoid incorrect "undefined code" warning from newer compilers. ved: signal handling with longjmp() has been reworked to make it work correctly on Non-XSI platforms like Linux. bsh: same lonjmp() problem as in ved. calltree: work around a possible buffer overflow in the parser.
2018-05-2525 May 2018 12:52 major feature: Bourne Shell: fixed a bug in vfork() support that caused the shell to exit with some pipes and non existing binaries. Bourne Shell: added #include for DJGPP support. Bourne Shell: DJGPP has no ETXTBSY. Bourne Shell: fixed a bug that caused a crash with jobcontrol and parameters from a command substitution. Bourne Shell: implemented a better workaround for a Linux wait*() bug. Bourne Shell: multiple backslashes in "job" output is now readable because we now use single quotes. star: automatically add POSIX extended time stamps, when a time-stamp is negative, too large or contains nanoseconds. star: automatically add uname/gname/path/linkpath in POSIX extendd header, in case the names are not 7-bit ASCII only. star: The fifo now is correctly disabled on DJGPP. star: A new option -pax-o allows to set hdrcharset=BINARY in the extended headers. star: fixed an uninitialized variable. ved: the .vedtmp file is now scanned for reusable dead entries. psmake: Bootstrap script now sets -D_GNU_SOURCE on Linux. README.compile: mention how to disable compilation of C++ projects in the tree.
2018-05-1717 May 2018 14:41 major feature: A new set of rules deals with gmake and dmake to ensure correct order in parallel mode. wctype() prototype has been moved to include/schily/wchar.h linfind: now honors nanoseconds with -newerXY star/libstreamar: unicode conversion now uses iconv(). bsh: avoid a core dump with some incomplete if statements. SunPro Make: better man page hints for parallel make. smake: now honors nanoseconds when comparing timestamps. smake: no longer core dumps in 64 bit mode after Year 2 Billion. smake: better debug messages for time stamps. smake: work around a problem with GCC-8.1 and Clang-6.0. copy: now uses utimens() to to be able to copy nanoseconmds - not just microseconds. copy: handle a case where _PC_MIN_HOLE_SIZE was uninialized on Linux. mkisofs: The link count in RR and UDF for huge multi extent files is now correct. mkisofs: mkisofs no longer core dumps on Linux with multi extent files and -T (TRANS.TBL). mkisofs: The file meta data for the RR relocated directories is now correct in UDF. star: Now always honors nanoseconds when comparing time stamps. star: added a new archive format "epax": "pax" with always POSIX.1-2001 extended headers and thus nanosecond timestamps. star: hdrcharset=BINARY is now suppoted.
2018-05-0202 May 2018 14:09 major feature: libschily::getargs.c fixed a bug that could cause a coredump. libxtermcap: fixed a bug in tdecode() that could cause a core dump. History Editor: added single and double quote to the list of characters that need quoting with TAB expansion. Bourne Shell: added a new #ifdef for better pattern matching debugging. Bourne Shell: When in strict POSIX mode, bosh no longer implements a strcmp() fallback in "case" statements. Bourne Shell SCCS: conformance tests now work when on Cygwin username or pwd contain spaces. star: star -diff is now able to compare nanoseconds. SCCS: the username now converts spaces to underscores before writing them into the history file. This makes SCCS work in such a case on Cygwin.
2018-04-1718 Apr 2018 11:20 major feature: A new feature has been added to the Schily Makefile system that allows to control the major and minor version number of shared libraries. The Schily Makefile system now keeps the old values of the LC_* environment under OLD_LC_* before switching the locale to C. libschily: getfp.c has been split into two files to prevent gcc and clang to understand what's going on and to prevent related unwanted warnings. libschily: the printf() float formats E/F/G now print upper case strings for INF/NAN. libfind: libfind no longer increments pointers in the argv array when the related strings contain a '='. bsh: avoid a coredump from expressions line 22222222222222. Bourne Shell: fixed a bug in gmatch() related to patterns "a-c" . Bourne Shell: added a new compile time flag "make COPTX=-DCASE_XPRINT" that together with set -x prints better debugging for case statements. patch: Fix for CVE-2018-1000156 security issue. We now use "red" instead of "ed" to avoid shell escape attacks from patch files. star: We now better check for the results of an ignored SIGTTIN SunPro Make: The man page now documents :shell= SunPro Make: We now implement a workaround for a wchar_t conversion bug on Linux.
2018-04-0505 Apr 2018 13:46 major feature: A new feature (PREINSDIR) has been added to the schily makefile system. Schily.Copyright: updated copyright information. Better auto-detect code for gcc on Ubuntu and clang on FreeBSD. Auto detection for the address sanitizer in gcc and clang has been added. libschily: handlecond()/raisecond() now work together with the address sanitizer. libschily: dlerror() fallback prototype has been made POSIX compliant. libschily: match.c no longer makes illegal address accesses with the pattern " 0- ". ved/bsh/libshedit: map.c avoid a possible dereferenced NULL pointer. bsh: A file with the content "#!" did cause a core dump. bsh: the own malloc() implementation is now automatically disabled with ASAN. smake: The inline "echo" parser did missinterpret ;. Star: better error messages and better man page. hdump: the OpenSolaris od(1) man page has been integrated. hdump: the hdump man pagehas been enhanced. hdump: fixed some missbehavior introduced by the additional "od" support. mkisofs: avoid a possible core dump. SunPro Make: some printf() statements have been fixed. SunPro Make: mention automatic forwarding of command line macros to sub-makes. SCCS: Installation may now go to /usr/bin instead of /usr/ccs/bin, see README.SCCS. SCCS: the help(1) algorithm has been descibed in the man page. SCCS: get(1) man page now mentions fallback PATH for sccs.include.filename .
2018-03-1616 Mar 2018 12:34 major feature: configure: A test for SELinux has been added libsiconv, mkisofs and smake moved their config files to /usr/share/lib. smake: when an implicit target is made, the result is now searched in the list of obj-directories. SCCS: the sccsdiffs script now uses s.* */s.*). star: now avoids a warning while auto-detecting CPIO archives. star: 64 new unit-tests have been added for archive format auto detection. Bourne Shell: "command set +o invalid" no longer sets @ to "invalid". Bourne Shell: The parameter substitution with prefix and suffix removal does now better deal with double quote characters. Bourne Shell: The "repeat" builtin command finally allows to be aborted via C. Bourne Shell: bosh -c 'umask 0400; cat
2018-03-0105 Mar 2018 15:30 major bugfix: Schily Makefiles: compilers such as "gcc32" are now remembered correctly as default if used on a maiden tree. Schily Makefiles: added hints on how to compile smake on DJGPP. libschily::searchinpath.c no longer has a memory leak on DJGPP. libschily: wide characters are now used on HP-UX-10.20. libschily: use working widechar fallback for DJGPP. libscg: dynamic linking works again. smake: added a new working PATH for the shell on DJGPP. smake: added dos_make.bat for a DJGPP bootstrap. Bourne Shell: the builtin repeat may now be interupted itself by C. SunPro Make: avoid some copy/paste code. SunPro Make: make SGS_SUPPORT work with 64 bit ld even when the parameter contains a slash. SCCS log: avoid coredump with missing SCCS directory. sformat: New -randv option allows random verify of a disk. sformat: use drand48() to make random functions work on larger disks. patch: /dev/null is no longer stripped with -p option. patch: The option -E is no longer needed in extended mode when the resulting file is empty. patch: the nanosecond time field from "diss -u" is now parsed. patch: New options -T/-Z to set the time of the resulting files. patch: is now using version "3.2"
2018-01-2626 Jan 2018 11:58 major bugfix: Speed up compilation with SunPro Make. SunPro Make based compilations of schilytools are now done in "C" locale. README.compile now mentions how to compile in parallel mode. libschily: puntenv() and unsetenv() fallbacks have been moved from smake to libschily. Mkisofs: filename translations for UDF now work correctly with chinese characters. SunPro Make: Support for .PHONY: was fixed. SunPro Make: Some messages are now printed only once. SunPro Make: SUN_MAKE_COMPAT_MODE=POSIX switches into POSIX mode. SunPro Make: dmake -j8 (instead of -j 8) now works even when no other parameter follows. SunPro Make: Support for "export", "unexport", "readonly" and "-include" was added. smake: smake no longer prints recursion in dependencies with "o=o" in Makefile. Bourne Shell: a Bug in loadable builtin removal has been fixed. Bourne Shell: Fixed a bug with jobcontrol in the left side of a pipe. star: work around a btrfs bug. Man pages: many typo corrections from "Leah Neukirchen".
2018-01-1010 Jan 2018 16:46 minor feature: libschily: fstream.c new function fsgetlen() returns number of characters in the stream buffer. Bourne Shell: the interface to the history editor was rewritten to allow the parser to flush the rest if the line in case of a syntax error. Bourne Shell: Simple scripts (wihout #!) no longer do wrong jobcontrol with the second and following command. Bourne Shell: echo (( 1 + 3 + )) now correctly prints an error message instead of "8". Bourne Shell: correctly unhash functions when they are deleted. Bourne Shell: the interface for builtins no longer needs access to local shell variables. libboshcmd: new library to test the new loadable builtins in the Bourne Shell.
2017-12-2121 Dec 2017 15:25 major bugfix: libgetopt now prevents to access data behind the end of a string. Bourne Shell: many fixes for "use after free" or "access out of bounds" have been discovered with AFL and fixed in this release. Bourne Shell: "ulimit" added new resource definitions for newer FreeBSD versions. Bourne Shell: a new csh compatibility builtin "limit" has been added. ved: better man page. mkisofs: better man page for the -D option.
2017-12-0808 Dec 2017 13:53 major feature: The schily makefilesystem now uses FRC instead of .PHONY only for the unfixed SunPro Make. Added a workaround in the portability layer to permit compilation of SunPro Make on Oracle Solaris-11.2. Bourne Shell: fixed another buffer problem in prs_cntl(). Bourne Shell: added various workarounds to prevent a buffer overread with a string that ends in a backslash. Bourne Shell: fixed the behavior of special builtins that have been cached in the shell. Bourne Shell: arithmetic expansion no longer continues until a SIGSEGV in case the expansion happens as part of the I/O expansion for a non-special builtin. Bourne Shell: fixed a bug that caused to allocate one byte too few for strings in rare cases. SunPro Make: SGS_SUPPORT_32 and SGS_SUPPORT_64 are now also supported. SunPro Make: Support for .PHONY has been added. SunPro Make: MAKE_NAME=sunpro is no longer visible in case the program runs in compatibility mode for the old Sun/Oracle version of the software. cdrtools: Version bumped to 3.02a09
2017-11-2121 Nov 2017 15:09 major feature: schily printf now support 'E', 'F', 'G' float formats. A new program "printf" was added that may replace /usr/bin/printf on Solaris. Bourne Shell: the printf builtin now supports floats. Bourne Shell: the printf builtin now supports n . Bourne Shell: A problem with string stack handling in printf was fixed. Bourne Shell: a .profile with PS1 content for ksh93 could cause an endless loop. Bourne Shell: set +X did not cause an error message. Bourne Shell prc_cntl() no longer overwrites the standard print buffer. star: star -diff with "exustar" archive did interpret hardlinked sysmlinks ad hardlink and symlink.
2017-11-0707 Nov 2017 11:50 major feature: libshedit bsh are now able to deal with malloc() returning NULL even when using the standard malloc instead of the malloc from bsh. Bourne Shell, bsh and ved now support to remove a mapping established by TERMCAP with a special entry in .bshmac or .vedmac. Bsh and Bourne Shell: While reading .history, time stamps from bash are now skipped. p: The pager got another bug-fix for multi byte characters. Bsh: " @" is now treated correctly if the arg vector is completely empty.
2017-10-1010 Oct 2017 14:56 major feature: libschily::match.c: patmbmatch() is now working. p: Searching works again. p: Searching (from more prompt) now supports multi byte chars. p: the search code now supports finding text in bold or underlined words even in case there are underlined multi byte chars. Bourne Shell: the test suite now supports new predefined variables is_bourne and is_osh. K R cpp: The output for the __FILE__ macro is now inserting the needed backshlash quoting for backslashes in file names. K R cpp: The error message "#if-less #endif" may have caused a core dump that happened because we are no longer on UNIX-V7 where a NULL pointer may be dereferenced and points to a 0. K R cpp: The "#line # filename" directive no longer ignores it's arguments. star: Added a new extended header: SCHILY.devminorbits. This is needed because Solaris uses a different makedev() for 64 bit commands and 32 bit commands.
2017-09-2526 Sep 2017 09:07 major feature: libschily::getargs() Added support for POSIX option rule #5 to make the star based pax pass the POSIX compliance test. libschily::comerr.c The environment "COMERR_EXCODE" switches off mapping exit codes 127 to -64 to permit POSIX compliant callers (using waitid()) to get the full 32 bits of the exit code. Bourne Shell: four bugs in the new support code for "return" from "dot" scripts have been fixed. Bourne Shell: some minor bugfixes related to the lifetime of shell tmp files. Bourne Shell: set -o posix now is able to enable POSIX export semantics after startup. Bourne Shell: the exit code for the builtin "test" is now 2 for usage errors as required by POSIX. Bourne Shell and bsh: fixed a bug that caused unalised aliases to be ignored if the same name was used again later. Bourne Shell: the shell no longer modifies the hash values in case that a command us used via the "command" builtin. Bourne Shell: added a workaround for a bug that could cause fd#1 to be closed with highly complex scripts. spax: POSIX option semantics is now supported (the last combined option may have an argument). SCCS: enhanced the help texts to mention that lower case get keywords need to be enabled via "admin -fx". SunPro Make: "make -j5" is now accepted as an alias to "make -j 5".
2017-09-0707 Sep 2017 10:22 major feature: libschily::fnmatch() now supports :upper: and :lower: together with FNM_CASEFOLD. Bourne Shell: cmd file now always sets O_APPEND. Bourne Shell: restore " ?" if clobbered by vfork(). Bourne Shell: The echo builtin now always behaves POSIX compliant when called via "command -p echo". Bourne Shell: "VAR=val exec cmd" now exports VAR to "cmd". Bourne Shell: the command "type xxx" no longer prints wrong information for hashed entries. Bourne Shell: aliases are now expanded even for "eval". Bourne Shell: "return" now returns from dot scripts as required by POSIX. SunPro Make: when called as "make" or "dmake", command line macros are forwarded.
2017-08-2929 Aug 2017 13:01 major feature: Bourne Shell: gmatch() now honors backslashes in character sets. Bourne Shell: x=foo; echo ((x=1)) now works. Bourne Shell: Fixed an endless recursion from typing C with PS1 holding a command. Bourne Shell: Added a workaround for a race condition in signal handling with a signal arriving short after a fork(). Bourne Shell: tmp files from here documents no longer are removed too early. Bourne Shell: "read" now skips repeated whitespace before and after words. Bourne Shell: Field separation now skips repeated whitespace before and after words. Bourne Shell: "command" is no longer similar to "eval" when executing filesystem commands - the arg vector is now expanded only once. Bourne Shell: "VAR=val command env" now works as expected. SCCS: The testsuite now behaves better with parallel make programs. SCCS: "sccs delget -f -q" now works to enforce a delta even when there is no p. file.
2017-08-1414 Aug 2017 12:24 major feature: Added make RULES files for FreeBSD on ARM64 using clang. Added a workaround for a clang bug that caused a autoconf C program to be an endless loop. Added a workaround to avoid inlining a funtion for a test program that checks the steck growth direction. Added autoconf tests for isblank() and iswblank() as they are not available on older (POSIX.1-1992) platforms. Added an autoconf tests for the type win_t. Changed (MAKE) to " (MAKE)" to make the makefiles work, when the make program is in a directory with a space in the path. libschily::format.c: changed the "long" parameter to "void *" to make the schily printf() work on 64 Bit MINGW (Win-DOS). libschily: Added an implementation for wctype() and iswctype() for older platforms. libschily::fnmatch.c: Added support for :alpha: . libschily::gnmatch.c: Made much faster by avoiding recursion. libschily::matmatch(): Added support for :alpha: . Bourne Shell: thequoting state is now reset before expanding here documents. Bourne Shell: ((..)) now checks whether the string ends with )). Bourne Shell: the comma oparator with the question mark oparator now works. Bourne Shell: bosh -c "echo bla" -x now works. Bourne Shell: the pattern before case labels now may contain unquoted keywords. Bourne Shell: gmatch() is now much faster as it does not use recursion anymore. Bourne Shell: gmatch() now supports :alpha: , this is used in file expansion and with "case" statements. SunPro Make: the program now compiles and runs on Minix.
2017-07-1919 Jul 2017 13:17 major bugfix: The Schily Makefilesystem now supports to create shared libraries on Cygwin. libschily: a new multi byte aware version of the pattern matcher was added. "make tinfo" now works even when the system shell is not the Bourne Shell. conf/oarch.sh now outputs the right arch directory name for cygwin. Several programs now link against LIB_INTL to support cygwin. Several programs got minor bug fixed from the reports of the static code analyzer "cppcheck". cdda2wav now only reads the ISRCs for the tracks in the explicit track list. cdrecord man page: a better description for defpregap=0 was added. Bourne Shell: A new hardlink /opt/schily/xpg4/bin/sh installs a 100 POSIX version. Bourne Shell: bosh -ce 'read line /dev/null; echo ?' now works correctly. Bourne Shell: bosh -c 'set -u; echo (( x = 3 ))' no longer aborts. Bourne Shell: When running the conformance test, now all /tmp files are removed. SunPro Make: When in POSIX mode, /opt/schily/xpg4/bin/sh is used as a fallback POSIX shell. SunPro Make: add our own libgetopt to work around a libc bug on Haiku. SunPro Make: add an INS_BASE based search path for the file "make.rules". SunPro Make: dmake -r now sets MAKE correctly. p: avoid an endless loop from a wrong EOF regognition in search mode with the new multi-byte aware pager.
2017-06-2929 Jun 2017 11:46 major bugfix: Configure: libnetwork problems on Haiku finally solved. Configure: the vfork() test was enhanced to recognize the non-conforming implementation on Haiku. Configure: a new test was written to work around a bash bug that causes "test -r /dev/stdin" to create exit code 0 on Haiku. Makefile System: Fixed a bug with parallel make implementations. Makefile System: add FRC in addition to .PHONY for SunPro Make. Makefile system: Added a new target "uninstall". p: the pager now supports UTF-8 locales. Bourne Shell: command substitution no longer overwrites the exit code " ?". Bourne Shell: bosh -c cmd now allows further options between -c and cmd. Bourne Shell: flag exit 0x12 as command line error. Bourne Shell: The parameter expansion var-word now processes "word" for IFS field splitting. Bourne Shell: non-existent 2 /dev/null now redirects the error message. Bourne Shell: copy tmp files instead of hardlinking them on Haiku. Bourne Shell: Macro expansion for PS4 no longer clobbers other expansions. Bourne Shell: Compliance tests now include a workaround for a ksh93/bash/mksh bug. SCCS: avoid writing SCCSv6 constructs in SCCSv4 history files. SCCS: the "val" program now detects the wrong SCCSv6 constructs on SCCSv4 history files. SunPro Make: the install directory detection now works on Haiku. SunPro Make: the install directory detection now works for xpg4/bin/make as well.
2017-06-1515 Jun 2017 10:51 major bugfix: Configure: An attempt to deal with the problems with "libnetwork" on Haiku. SunPro Make should now compile out of the box on Haiku. smake: automake code enhanced to include the knowledge on how to get the "uname -p" results into the MAKE_ARCH macro. cdrecord/readcd: Man pages now mention the exit code values. bdiff: now avoids to install a signal handler for SIGCHLD on Haiku because of the strange signal numbering. SCCS thus now works on Haiku. patch: The compliance tests now should be able to deal with Haiku. star: The compliance tests now set TZ=GMT to make star -tv pass the tests on non GMT timezones. Bourne Shell: many bug-fixes for corner cases reported by Robert Elz.
2017-05-2929 May 2017 14:32 major feature: autoconf now groks ppc64 Linux. Several new autoconf tests for Haiku and SunPro Make have been added. bsh and the Bourne Shell now compile on Haiku again: struct rusage is now copied more carefully. SunPro make got several modifications to make it compile on Haiku. SunPro make: the man pages have been enhanced. SCCS: "sccs -R log" now works as expected. Bourne Shell: if PATH is unset, the default path now includes ".". Bourne Shell: in POSIX mode, variables imported from the environment are now auto-exported. Bourne Shell: multiple non-space IFS characters now result in empty arguments instead of skipping all of them. Bourne Shell: IO redirection on complex commands no longer result in running the command in a subshell. This speeds up the shell by aprox. 3 percent. Bourne Shell: "local" now restores unset variables at end of the scope as expected. Bourne Shell: no longer set "-i" in case the shell is not running stdin from a terminal.
2017-05-1616 May 2017 15:10 major feature: SunPro Make now compiles on Solaris, Linux, FreeBSD, HP-UX, MacOS-X, Cygwin and NetBSD. SunPro Make: fixed some bugs with "include" and introduces the ability to include mor ethan one file with one include statement. SunPro Make now identifies itself via: MAKE_NAME=sunpro. SunPro Make: added a man page for "dmake". SunPro Make: much better portability. RULES: added a new set of rules for the enhanced SunPro Make. Bourne Shell: Bourne Shell: kill -l now no longer lists "bad sig" for nameless signals.
2017-05-0303 May 2017 10:38 major feature: SunPro Make now compiles on Solaris, Linux, FreeBSD, HP-UX, MacOS-X. bsh and Bourne Shell: kill -l now list realtime signals on FreeBSD and NetBSD.
2017-04-2626 Apr 2017 10:46 major feature: Many new autoconf tests to support Solaris on ARM and SunPro Make. The SunPro Make sources have been added and enhanced to support parallel compilation (currently working on Solaris and Linux). Added a method to skip C++ based sub-projects in case the system does not include a C++ compiler. README.compile now has a better documentation for using the Address sanitizer. SCCS now forwards the -o option (original date) to more tasks and thus "sccs delget -o" will set the timestamps of all related files as well. strar: now links against -lintl to allow compilation on FreeBSD.
2017-03-3030 Mar 2017 09:37 major bugfix: README.compile was updated to mention how to compile with Address Sanitizer and American Fuzzy Lop. libschily::comexit() now frees the entries and thus avoids warnings from the Address Sanitizer. Cdda2wav: The option -vall no longer clobbers the out-fd=# option in 64-bit binaries. Cdda2wav: Some workarounds for the illegal buffering for "stderr" on Linux. Bourne Shell: an interactive "cat
2017-03-0808 Mar 2017 15:42 major bugfix: README.compile was updated and made more readable. star: The NFSv4 ACL format was redesigned to be more compact. SCCS: get no longer dumps core while using "get -A" wich more than file. SCCS: sccs no longer dumps core when calling "sccs -R unedit" with more than one file affected.
2017-02-0808 Mar 2017 15:41 major bugfix: README.compile was updated and made more readable. star: The NFSv4 ACL format was redesigned to be more compact. SCCS: get no longer dumps core while using "get -A" wich more than file. SCCS: sccs no longer dumps core when calling "sccs -R unedit" with more than one file affected.
2017-02-1616 Feb 2017 13:59 minor feature: libschily: added a missing null-byte to the filename in opendir() emulation for Win-DOS. libstreamar: A new library for StreamArchives. Bourne Shell: Fixed a bug with the libshedit interface. SCCS: "sccs get SCCS" no longer suppresses keyword expansion when the 's' was set. Various typo fixes in man pages. strar: new command based on libstreamar.
2017-01-3030 Jan 2017 13:56 major feature: Enhanced libshedit enhanced to allow full support for POSIX "user portability". Bourne Shell: the fc command is now fully POSIX compliant. star: a buf with "star -r" and "star -u" has been fixed. star: A basic version of a test suite has been added. SCCS::diff: fixed a coredump with "diff -u dir1 dir2" and a few other fixes.
2017-01-1717 Jan 2017 15:44 major feature: Autoconf now detects incompatible Cygwin interface change with ACLs. cdrtools version bumped to 3.02a07. mkisofs no longer needs -no-cache-inodes to make -duplicates-once work on UNIX. star: The string conversion from the POSIX.1-2001 extended header SCHILY.filetype has been speed up. Bourne Shell: the "fc" builtin has been implemented for completeness of the optional POSIX user portability extensions.
2016-12-1414 Dec 2016 14:19 major feature: libxtermcap is now compiled before libshedit to allow to compile a shared version of libshedit. SCCS sccs: Permit new diff options: -q -a -B -N -p mkisofs: New option -isort behaves like -sort with ignore case. mkisofs: new option -hide-ignorecase allows to ignore case with the -hide* options and with -exclude-list mkisofs: New option -no-allow-lowercase allows to clear -allow-lowercase from macro options. mkisofs: New option -duplicates-once to hard link identical files even on non POSIX platforms. star: Linux xattrs are now set after chown()
2016-11-1717 Nov 2016 12:04 major feature: libschily: New interface movecbytes() similar to memccpy(). libschily: fgetline()/fgetstr()/getdelim() speedup from using movecbytes(). diff: added a check wether a specific malloc() returned NULL diffh: Now supports lines of arbitrary length via getdelim() bdiff: Now uses getdelim() and supports binary data. SCCS test suite: the compatibility of bdiff(1) and delta(1) is now checked with a random file modification test. hdump/od: od -A n no longer prints a stray TAB in the last line. mkisofs: find_hash() has been changed to prepare a future option -duplicate-once Bourne Shell: avoid a race condition with set -C and creating files. Bourne Shell: "sh -c -- command" now works.
2016-10-2727 Oct 2016 13:23 major feature: libschily: enhance man page for getargs() mkisofs: make graft points with ./ or // work on Mac OS X mkisofs: make -no-cache-inodes be always present again diff: diff -r now works recursive instead of using fork()/exec() diff: diff -r now up to 16x faster than Solaris diff and up to 2x faster than GNU diff Bourne Shell: cd without option now defaults to -L when in POSIX mode.
2016-10-1111 Oct 2016 13:36 major feature: mkisofs: Mkae it compile again without #defining USE_FIND APPLE_HFS_HYB APPLE_HYB UDF DVD_AUD_VID mkisofs: print more people's names with mkisofs -version patch: Added a workaround for CVE-2015-1416 patch: added support for an "ed" workaround in diff(1) diff: Added support for the -a option diff: Added support for the -p option diff: Added support for the -q option diff: Added a workaround for an "ed" problem with diff -e
2016-09-2829 Sep 2016 10:04 major feature: Bourne Shell: Fixed a bug with IFS field splitting with read(1) that was introduced with the attempt to make it POSIX compliant. Bourne Shell: The shell has been verified to work as system shell (/sbin/sh) on OpenSolaris after fixing three ksh-isms in system scripts. bsh: Fixed a bug with chained commands introduced by the change to use waitid().
2016-09-1818 Sep 2016 16:20 major feature: Bourne Shell: "history" is now interruptable by C. Bourne Shell: an interrupted edited command line no longer stops TAB file name expansion. bsh/libshedit: The POSIX vars HISTSIZE and HISTNAME are now supported in bsh and Bourne Shell. Bourne Shell: set -a now affects all modified variables, including those set by getopts(1). Bourne Shell: PWD is now initialized at startup as required by POSIX. Bourne Shell: man page now mentions the variable BEEP. cstyle: prevent to flag extern declarations that use more than a single line. patch: -Wv and -Wversion now work in all modes (including strict POSIX mode) to get a version number printed.
2016-08-0304 Sep 2016 09:54 major feature: Star: Support for NFSv4 ACLs on FreeBSD was added. Bourne Shell: introduce variable expansion for PS1 and PS2. Bourne Shell: a new option "set -o promptcmdsubst" (for security reasons) allows to switch on command substitution and arithmetic substitution for PS1, PS2, and PS4. Bourne Shell: Print PS4 before a variable assignment when in "set -x" mode. Bourne Shell: Modified the lexer to permit newlines in strings for POSIX command substitution. Bourne Shell: changed the code to avoid problems with GCC and strict aliasing. Bourne Shell and bsh: popd now always prints the new directory. Bourne Shell: a new archive dotfiles.tar.bz2 is provided with sample dotfiles for the Bourne Shell.
2016-08-1919 Aug 2016 12:46 major feature: libshedit: C is now a supported special char to interrupt, V is supported. Bourne Shell: Use C to longjmp before the next prompt to allow to escape the parser when it is in an unknown state. Bourne Shell: when expanding PS4, disable set -x to avoid an endless recursion. Bourne Shell: Fixed a bug from a too small environment array in locale handling. Bourne Shell: avoid to read and write "thisjob" after it has been free()d. SCCS: work around the problem with "tail" implementations that do not support "tail +2". SCCS: work around the problem with "touch" implementations that do not support "touch 0101000090 g". All: a new global target "cstyle" was added to allow automated C-Indentation-Style checks. calc/bsh/cdrecord: typo corrections.
2016-08-0808 Aug 2016 14:19 major feature: ved: clear a FILE * object after calling fclose() to avoid a core dump on Linux. ved: version bumped to 1.7-final Bourne Shell: May now be installed as Gentoo system shell Bourne Shell: Avoid a hang with the new optimized pipe model from December 2015. Bourne Shell: fixed a side effect bug from the rewrite of "test" in 2016-07-25. Bourne Shell: set -o posix may now be auto-activated when ever the past path component of argv 0 is "sh". Bourne Shell: "trap" may now catch SIGSEGV. Bourne Shell: do not list functions with "set" when set -o posix is in effect. Bourne Shell: "type -F" now lists all functions.
2016-08-0101 Aug 2016 12:42 major feature: libshedit: the name of the created lib is now "libshedit" instead of "libshelledit". Bourne Shell: some typos in the Makefile have been fixed. Bourne Shell: fixed a bug from 2016-07-06, make "read" work again with a single VAR argument. Bourne Shell: fixed a bug from schily-2016-07-25, make test 0 -eq 1 return FALSE again. Bourne Shell: set -u; echo " @" no longer returns an error with empty arg list. Bourne Shell: "case" no longer remembers the last exit code when no case label matches. Bourne Shell:fixed a bug in the local gmatch() implementation taken from FreeBSD. Bourne Shell: now prints an error message when a dup() fails with a I/O redirection. Bourne Shell: add a hack (similar to ksh88) for POSIX IFS handling. Bourne Shell: test suite enhanced.
2016-07-2525 Jul 2016 12:55 major feature: Cstyle: added original documentation from Bill Shannon Cstyle: added a workaround for a perl-5.22 incompatibility. Cstyle: do not flag "C++ comment" inside one line comment. Star: several small apparent (to the compiler) and two real buffer overflows have been fixed. Star: star -c -dump -vv no longer prints a wrong user name for files. Bourne Shell: Fix a parser bug introduced with (). Bourne Shell: Add a 100 POSIX mode with "set -o posix". Bourne Shell: "test" has been rewritten to be 100 POSIX compliant. Bourne Shell: a:- is now a single word - as POSIX requires. Bourne Shell: "printf" is now able to output nul bytes with the 'b' format.
2016-07-0607 Jul 2016 10:34 major feature: Star: several workarounds to prevent buffer overruns to happen with intentionally defective archive content. Bourne Shell: The "select" keyword from ksh is now supported. Bourne Shell: The new builtin command "local" is supported to allow recursive function calls. Bourne Shell: The "read" command now defaults to "REPLY" if a variable name is missing. Bourne Shell: A bug introduced by Sun Microsystems in the 1990s was fixed, it caused "readonly" unexported variables to be visible in called shell scripts.
2016-06-2828 Jun 2016 12:52 major feature: patch: implement workarounds for the testsuite to make it work on Linux, FreeBSD, OSX even though there are local OS bugs. SCCS testsuite: now also works on many more platforms. Bourne Shell testsuite: fixed some bugs that caused problems on Linux. Bourne Shell: fixed a bug from 2016-06-20 that caused "exec 5 file" to close the file instead of keeping it open. Star: star -c -dump -vv now prints the correct usernames and groupnames. Star: now avoids some buffer overruns with rotten CPIO archives. Star: no longer missinterprets some blocks as being nulled while using the outdated signed checksums.
2016-06-2020 Jun 2016 13:16 major feature: Automated tests for SCCS patch and the Bourne Shell are now usable via the command "make tests" at top level. conf/oarch.sh added a rule for AIX. cstyle now prints the actual line length for a too long line. cstyle not warns for files that do not end in a newline. Patch tests now work on Linux. SCCS: better man pages. SCCS: fixed a bug in diff on Linux, HP-UX and AIX. SCCS: fixed a bug from the GMT compile option from September 2015. SCCS tests now for the correctness of the base hisory format. Bourne Shell: fixed another bug from before 1980. Bourne Shell: break/cotinue 0 now cases a nonzero exit code. Bourne Shell: getopts now sets name to ? in case of an error. Bourne Shell: test now honors the modified POSIX semantics. Bourne Shell: error handling now more frequently causes a shell exit to be POSIX compliant. Bourne Shell: since less than 25 percent of original code are inside, all code now was indented according to cstyle rules.
2016-06-0708 Jun 2016 09:27 major feature: Bourne Shell: variables with negative values now work in arith expressions. POSIX command substitutions with subshell work again and "whatshell" is usable again. Conditional expressions (?:) now use implicit parenthesis and permit nesting. Chain variable assignments now work. Post incr/decr now work with nested expressions. Arithmetic expressions now may contain newlines. Two 35 year old AT T bugs have been fixed: cat 0
2016-05-2424 May 2016 14:13 major feature: Bourne Shell: The POSIX arithmetic expansion ((expr)) added support for variable assignment, prefix/postfix increment/decrement of variables, the conditional operator and the comma operator and thus is now 100 percent ready. Bourne Shell: The shell should now be completely POSIX compliant.
2016-05-1818 May 2016 12:47 major feature: Bourne Shell: The POSIX arithmetic expansion with ((expr)) is now 80 percent ready. Bourne Shell: The automated tests have been enhanced. Bourne Shell: LC_NUMERIC is now supported and the character to delimit second fractions is now the locale specific character. Bourne Shell: Some performance enhancements with multi-byte characters and resetting temporary shell variables have been introduced. Test system: a test for an exit code !=0 has been added. bsh: bsh -version now prints 2006.
2016-04-2828 Apr 2016 12:40 major feature: libgetopt: a man page was added. Bourne Shell: writes no longer warnings about exported functions as any name now could be a variable as well. Bourne Shell: 32 bit integer overflow with CPU time percentage fixed. Bourne Shell: I/O redirect errors do not longer terminate a script when this happens with a builtin command. Bourne Shell: String manipulation now works in double quotes as well. Bourne Shell: several new conformance tests added.
2016-04-1113 Apr 2016 09:15 major feature: Bourne Shell: The syntax tree binary to text converter was reworked to permit the parser to understand the outpout. This makes it now improbable that POSIX command substitution will fail where backticks work. Bourne Shell: As a reaction on POSIX bug #947, we again tread an exit(256) as TRUE in the default mode. Bourne Shell: An automated compliance test suite has been added. star: Man page now mentions "star_sym" and "tartest" in SEE ALSO. libgetopt: use dgettext() instead of gettext().
2016-04-0505 Apr 2016 10:03 major feature: Bourne Shell: bosh -i now also sets -o ved. Bourne Shell: "set --" now clears the argument list to be POSIX compliant. Bourne Shell: echo 10 now works to be POSIX compliant. Bourne Shell: a() ls; now correctly prints the command. Bourne Shell: A typo in the lexer caused a global variable not to be restored with (). bsh: Now also uses waitid() and returns all 32 bits from exit(). bsh: getrusage() emulation now also supports procfs2 and times(). libedc_ecc_dec: Now avoids an array out of bounds access. libshedit: the portability methods have been changed to support clang on Solaris while not failing on Linux and Mac OS X. libschily: A new function js_dprintf() was added. autoconf: some m4 macros have been rewritten to speed up things.
2016-03-1111 Mar 2016 10:40 major feature: A new autoconf test checks for struct dirent- d_type and libfind makes sfind now 1.2x faster than GNU find on Linux. libshedit: a clang workaround for Solaris caused problems on other platforms and thus has been reverted. star -copy -find now works. star find now permits -C directory. star now sets locale and this way makes -find work on multibyte locales. Bourne Shell: a fix for a global variable problem with (cmd) was introduced. Bourne Shell: "PATH=something command" now resets hashing after the end of command. Bourne Shell: Field separation with "read" is now POSIX compliant.
2016-03-0202 Mar 2016 10:58 major feature: README.compile now mentions clang. libschily: a bug in getargs was fixed that caused problems with od(1). Some clang workaround have been added for Solaris. cdda2wav: Many small rewrites from Heiko Eißfeldt to reduce the scope of variables. Bourne Shell: Empty commands in the form: ";" or ";echo" are now allowed. Bourne Shell: A fix for a global variable makes a shell script from the dash mailing list work correctly.
2016-02-1010 Feb 2016 11:29 major feature: smake: make.c removed a stray ' '. libschily/cvt.c: Removed a superfluous comparison. mkisofs/mac_label.c: fixed a file descriptor leak. star/acltext.c: fixed a memory leak. Bourne Shell: PATH IFS PS1 PS2 MAILCHECK may now be unset. Bourne Shell: added "apropriate" quoting for the "set" output. Bourne Shell: Tilde expansion is now fully supported. Bourne Shell: Only arithmetic expression support is missing for full POSIX compliance.
2016-02-0202 Feb 2016 12:47 major feature: libschily: Better man pages format.3 getallargs.3 getargs.3 getfiles.3 patcompile.3 cdrtools: bumped to 3.02a06 cdrtools: man pages now document the new libscg option "scgopts=" Bourne Shell: Command Substitution with (cmd) now works. Bourne Shell: funtion definition listings now are correct for the case stament (esac was added).
2016-01-2525 Jan 2016 13:48 major feature: libschily: fprformat.c now speeds up out printf() on all platforms instead of just Solaris and avoids unbuffered output on stderr. A new libscg specific option scgopts= has been introduced to all users of libscg in order to be able to work around a Linux kernel bug. Bourne Shell: cd/pwd/dirs/pushd/popd now all support the POSIX -L / -P options, though -P is the default for security reasons and for compatibility with the Bourne Shell from 1989 'till now. Bourne Shell: The "alias" now supports -raw as well as --raw.
2016-01-1818 Jan 2016 11:20 major feature: Schily.Copyright dates updated. cdrtools bumped to 3.02a05. mkisofs now always created correct files 4 GB in ISO-9660 - even with -sort. libscg lo longer interprets unknown error codes on Linux as timeout. Bourne Shell: ? is now printed as signed int as exit(2) has a signed int parameter and POSIX requires waitid() to deliver a full signed int. Bourne Shell: The builtin command "command" was added for POSIX compliance. Bourne Shell: Missing parameter substitution methods (like substring) have been added for POSIX compliance.
2015-12-3030 Dec 2015 18:32 major feature: Schily.Copyright dates updated. cdrtools bumped to 3.02a04. libschily/searchinpath.c now avoids a memory leak on platforms without getexecname(). libmdigest mdigest: sha3 entry functions renamed to match other names. libmdigest: the shared library mapfile now includes the sha3 functions. mkisofs: avoid coredumps and endless loops with rotten ISO images in multi session mode. mkisofs: fixed a bug with multi extent files and -sort. Bourne Shell: Command substitution (`cmd`) now also honors the set -o fullexitcode settings for the exit code. Bourne Shell: The debug code that is enabled with COPTX=-DPARSE_DEBUG now also prints the parsed tree from `cmd`. Bourne Shell: The symbol "!" is now a reserved word to logically NOT the exit code of a following program. Bourne Shell: POSIX compliance: permit an optional "(" before patterns from case constructs. Bourne Shell: support for the reserved word "time" was added. Bourne Shell: A bug in kill(1) option parsing introduced with 2015-12-16 was fixed. Bourne Shell: kill(1) is now POSIX compliant and supports "-s sig".
2015-12-1616 Dec 2015 10:32 major feature: libschily: The ast*() type functions now support to convert "minint" and set ERANGE on overflow. libgetopt now supports single dash long options (the native UNIX long option method). cdda2wav: new local autoconf code from Heiko mkisofs: support for DVD-Audio was added. Bourne Shell: all builtins that need to follow POSIX utility syntax guidelines not do so and support "--" and "-help". Bourne Shell: a bug in the job control code from 1989 (AT T) that caused aborts with long command lines was fixed. Bourne Shell now documents which features are still missing for POSIX compliance.
2015-12-0909 Dec 2015 11:45 major feature: mkisofs/diag/*.c add directory loop recognition and rotten media to avoid endless loops. mkisofs: honor -omit-version-number with stream media filename. mkisofs: fix a directory length bug with stream media. Bourne Shell: Work around a waitpid() problem on AIX introduced with 2015-11-26. Bourne Shell: printf builtin added. Bourne Shell: echo now supports backslash-a. Cdrtools bumped to 3.02a03. Better autoconf support for AIX. 64 Bit support for GCC on AIX added (tested) and cc (untested). Added new files RULES/os-mingw32_nt-6.*.id.
2015-11-2626 Nov 2015 13:55 major feature: libmdigest and mdigest now support sha3 checksums. Mkisofs now writes two identical UDF volume descriptors. New autoconf tests for Haiku and for non-SVID3 compliant OS (like Linux and NetBSD). Bourne Shell now compiles on NetBSD. Bourne Shell now correctly tries to avoid szombies with the new pipe parser. Bourne Shell fixes a bug with jobcontrol and the new pipe parser.
2015-11-2121 Nov 2015 14:20 major feature: Cdrtools have been bumped to 3.02a02. Minix support was added. A workaround for a termios.h problem on BSD with the ioctl() prototype was added. Bourne Shell: - works again. Bourne Shell: A workaround for a Linux 2.6.18 kernel problem with tcgetpgrp() and jobcontrol was added. Bourne Shell: fixed some bugs related to the new pipe handling.
2015-11-1213 Nov 2015 10:50 major feature: Support for Minix and Bitrig was added to config.guess. isoinfo works around a directory permission problem from "mkisofs -r". isoinfo now supports to follow relocated Rock Ridge directories. Bourne Shell: the parser was rewritten to make the shell the parent of all processes from a pipe and to allow "echo bla / read var" to set "var" in the main shell. Bourne Shell: jobs -p now correctly reports the job's process group. bsh: some Minix fixes. Star now flushes the verbose file stream at the end.
2015-11-0505 Nov 2015 12:28 major feature: Cdrtools bumped to 3.02a01. Added Support for the BSD "Bitrig" distro. SCCS: the command prs(1) again compiles with smake COPTX=-DGMT_TIME. SCCS: add list of compile time optione to sccs/README.SCCS. libfind: find -mtime +2s -mtime +20s now works. Bourne Shell: compiles again on FreeBSD. Bourne Shell,bsh,ved: map Backspace to DEL if terminal definition mentions backspace key that emits BS. Bourne Shell: the "alias" and "unalias" now cause exit code != 0 for POSIX documented errors. Bourne Shell: A command like sh -c "echo foo " now prints a syntax error message. Bourne Shell and bsh: pgrp now also prints the tty session group id. Bourne Shell and bsh: pgrp now uses ioctl() to avoid permission problems with POSIX functions.
2015-09-1616 Sep 2015 11:26 major feature: Bootstrapping now also works automated on *BSD as "Makefile" now refers to the script-based boootstrap and "Makefile" was renamed to "SMakefile". The "configure" hang that results from a bug in recent Cygwin versions is circumvented by avoiding the specific test on Cygwin. Cdda2wav now works suid root on NetBSD by fixing the setuid() call. Bourne Shell: The trap builtin is now POSIX compliant. Bourne Shell: A bug with shell variable handling while using vfork() was fixed. Bourne Shell: Variable assignement that precede a normal builtin no longer affects the variables in the main shell process. Bourne Shell: many builtins no longer exit the whole shell script when a utility syntax error or a fatal error is encountered. This is POSIX. Bourne Shell: Support for the POSIX shell variable PPID= was added. Bourne Shell: Partial support for the POSIX LINENO= was added. Libfind no longer destroys the localization in the shell as libfind now uses dgettext() instead of gettext().
2015-09-0303 Sep 2015 13:28 major feature: Bourne Shell: New options set -o bgnice, set -o ignoreeof, set -o notify. Bourne Shell: Support for export/readonly -p name=value was added. Bourne Shell: Fixed self-made bug with "(exec ps)" and added a workaround to have the same problem as a result from a deficit in the Linux Kernel. Bourne Shell: unset now supports the options -f / -v. Bourne Shell: getopts(1) now supports "long-only" options. Bourne Shell: the method from the history editor to deal with multi line commands now also works for the Bourne Shell. bsh / Bourne Shell: fixed a bug in the history editor that caused a core dump from reading lines from the history that are longer than 512 chars.
2015-08-2727 Aug 2015 12:03 major feature: Cdrtools was updated to V3.01. Fixed an old typo S_IFCNT to S_IFCTG. Bourne Shell: the computation of the CPU percentage now works even if the times are below 1ms. Bourne Shell: cd dir*/ now works as expected. bsh and Bourne Shell: .globals and .locals are now only read if they are not a symlink. Bourne Shell: many new test(1) features make test(1) POSIX compliant and introduce features beyond what ksh and bash do. Bourne Shell: file now opens the file with O_APPEND. Bourne Shell: set -C or set -o noclobber are now supported. Bourne Shell: exec -a argv0 cmd args... is now suppored.
2015-08-1818 Aug 2015 11:20 minor feature: libfind: added a workaround for a GCC compiler bug that caused core dumps with -exec. Bourne Shell: The built-in timing for commands now supports the variable TIMEFORMAT and more members from getrusage(). Bourne Shell: A bug with export related to vfork() was fixed.
2015-08-1212 Aug 2015 09:28 minor bugfix: Fixed a bug in the option parser that caused the Bourne Shell to exit after a command with non-zero exit code after calling "set -o hostprompt".
2015-08-1111 Aug 2015 10:27 major feature: Cdrtools bumped to version 3.01a31. Added support for Win-10 with non automake-aware make programs like GNU make. Spaste was modified to follow POSIX bug #973. man2html was added to the schilytools suite. Bourne Shell: #-commands have been added to allow comfortable editing of complex aliases. Bourne Shell and bsh: Added code to prevent a coredump from division by zero with the "@" builtin. Bourne Shell manpage now mentions that unlike bash or ksh, the Bourne Shell implements parameterizable aliases. Bourne Shell: set -o hostprompt enables a bsh like default prompt. Bourne Shell: Support for the POSIX PS4 string was added. bsh: fixed a memory leak with #-commands. Bourne Shell: reading the history and the cursor maps is now done buffered. ved: The man page no longer makes man2html believe that some overview tables are headlines.
2015-08-0303 Aug 2015 11:07 major feature: Cdrtools bumped to version 3.01a30 plus some minor bugfixes. README.compile now contains a better example for Android compilation. Libshedit (the command line history editor from 1982) fixed some name space problems that apply to static linking. diff now prints POSIX compliant time stamps on AIX and HP-UX. bsh and Bourne Shell added new ulimit/limit limit names for FreeBSD and Linux. Bourne Shell added a new builtin command "builtin". Bourne Shell added a new builtin "find". Bourne Shell now supports ksh exit codes 126/127. Bourne Shell added new .sh.codename values NOTFOUND and NOEXEC. Bourne Shell: "type" now reports reserved words as well. Bourne Shell: A new builtin "@" now speeds up computations in scripts. Bourne Shell: "sync" is now a builtin. Bourne Shell: New builtin "pgrp". Bourne Shell: New builtin "killpg". Bourne Shell: New builtin "errstr". Bourne Shell: "suspend" now works better. Bourne Shell: tilde expansion was added. Bourne Shell: more flags (now 120) are suported for future enhancements in "set(1)". Bourne Shell: "set -o fdpipe" now allows stderr pipes. Bourne Shell: "set -o fullexitcode" no longer masks ? with 0xFF. Bourne Shell: Builtin "times" now uses getrusage() instead of times() and increases resolution. Bourne Shell: "set -o time" now allows to enable default timing for all foreground commands. bsh and Bourne Shell: tilde expansion now works in the history editor.
2015-07-0707 Jul 2015 09:55 major feature: The Bourne Shell finished integration for support for full 32 bit exit codes. The Bourne Shell is the first shell to support the unmasked exit code on modern UNIX systems via .sh.* readonly variables, .sh.signo and .sh.signame is set to the signal that causes execution of a trap(1) command. The Bourne Shell also added .sh.shell and .sh.version. Bourne Shell: ulimit now prints option names to make it usable. Bourne Shell: kill -l signo now works (POSIX). A new autoconf test was added to check for working linker support for weak symbols. This allows to work around a Cygwin bug.
2015-06-2424 Jun 2015 10:44 major feature: Configure now correctly deals with broken waitid() on non-POSIX platforms such as Mac OS X. Bourne Shell: the wait procedure was converted from waitpid() to waitid(). This allows to get the full 32 bits from the exit(2) parameter of the terminated child if run on a POSIX compliant platform. The related value is in variable "exstatus". Bourne Shell: On POSIX platforms variable "?" no longer contains 0 but 128 when exitcode 0xFF == 0. Bourne Shell: again handles sh -ce command correctly when the builtin "false" is used. Bourne Shell: "times" no longer prints wrong second values as a result of a mistaken round-up. Bourne Shell: "exit" now permits negative exit values. Fixed a typo in schily/wait.h that affected Haiku. The "cstyle" program is now included. The "scut" program is now included. The "spaste" program is now included.
2015-06-0404 Jun 2015 10:50 minor feature: POSIX patch now uses a one clause BSD license - thanks to Larry Wall. POSIX patch now by default uses reduced verbosity and allows to go back to the historic verbosity with -vv. POSIX patch now includes the first version of a unit test. The Bourne Shell man page now better describes the effects of parameter substitutions. Change now supports lines of arbitrary lengths. Cdrtools have been bumped to 3.01a29.
2015-05-1919 May 2015 08:46 minor feature: libschily now contains a getdelim() implementation. libschily: *mem.c may now have user defined exit() code. Various forgotten entries in various linker map files have been added. POSIX patch no longer has artificial limits and now permits lines of arbitrary length. POSIX patch no longer dumps core when out of memory. POSIX patch now conforms to the POSIX exit code list. POSIX patch now follows the POSIX filename determination rules. POSIX patch now has new options -W+ -Wposix and -Wall. POSIX patch now passes extensive automated tests. POSIX patch now reports version 3.0.
2015-05-0606 May 2015 12:46 minor feature: Trying to always use W*() macros for wait(2) status. Initially publish old man pages for libschily. Libfind fixed a bug in the idcache implementation. Star now again correctly deals with non-null-terminated user/group-names on old star archives. Many bug-fixes for the POSIX patch implementation. A bug-fix for the Solaris based diff(1) with -U0. SCCS now passes all regression tests on Haiku except for the ones caused by a localtime() bug in libc on Haiku.
2015-04-2424 Apr 2015 10:49 minor feature: The Bourne Shell and SCCS now work on Haiku. The problem was UNIX incompatible signal numbering and a different bit-ordering in the wait(2) status that was not address by historic UNIX code. A new program isaexec(1) was added. Isaexec is an attempt to write a portable version of the Solaris isaexec program.
2015-04-1616 Apr 2015 10:44 minor feature: Support for Haiku on x86-64 was added. Some bug-fixes and speedups for smake have been introduced. bsh/wait3.c now returns pid_t - report if this causes problems with UnixWare. bsh and Bourne Shell now write HOME /.globals and .locls with mode 0600 and do not read them in case that other people have write access to that files. The Bourne Shell now supports to specify options in more than one argument. The Bourne Shell now supports "set -o vi" and "set -o ved". Fixed a bug in libgetopt that could cause a SIGSEGV in the Bourne Shell in case that getopts(1) was used incorrectly.
2015-04-0808 Apr 2015 10:13 minor feature: Several fixes in the Bourne Shell (mainly for bugs introduced with vfork() support and the portability change sbrk() - malloc()) discovered by Heiko Eißfeldt. CPP now supports the environment SUNPRO_DEPENDENCIES.
2015-03-3030 Mar 2015 15:00 minor feature: smake version bumped to 1.2.5 cdrtools version bumped to 3.01a28 Support for ARM-64 (aarch64) was added. The /man directory is now created early to avoid it to be created as root when calling make install. libdebugmalloc is now usable with the Bourne Shell. Several Bugs in the Bourne Shell fixed, thanks to Heiko Eißfeldt
2015-03-1616 Mar 2015 10:38 minor feature: The key SCCS programs admin, delta, get have been enhanced to support the upcomming project mode. The next step will enhance the program sccs(1) and give basic functions for the project mode. Smake fixed several bugs that are triggered when using unusual makefiles.
2015-03-0303 Mar 2015 11:30 minor feature: SCCS has been enhanced and is now close to a state that supports whole projects instead of just single files. cpp now implements new options -M -noinclude -xuc -xsc. Several bugs in smake have been fixed that could cause smake to dump core. mkisofs: isodump no longer needs a C99 compiler. libdbgmalloc now verifies the whole heap for corruption when the program exits.
2015-02-1212 Feb 2015 10:50 minor feature: Cpp no longer has static limits for macro string space and the number of macros. The install make rules for man pages and scripts have been corrected to avoid perpetual overwriting. SCCS admin -N no longer writes corrupt checksums if a previous file was uuencoded. "sccs -R clean" no longer prints many "file not found" messages. SCCS sccs has been restructured to prepare the upcomming project support. Several small fixes in the SCCS library to prevent buffer overflows.
2015-01-2929 Jan 2015 11:34 cleanup: SCCS was bumped to version 5.07. The SCCS get command now implements an experimental option -A that annotates the gotten lines with programmer names and dates. Diagnostic mkisofs helper programs like "isoinfo" first check for the existence of Rock Ridge date before trying to access that data.
2015-01-0126 Jan 2015 17:06 cleanup: Cdrtools documentation updated to mention sourceforge instead of berlios. Fixed a bug in star's pax CLI that caused spax -X to dump core. Thanks to Pavel Raiskup for reporting.
2014-09-1717 Sep 2014 13:50 cleanup: Fixed the support for "mkisofs -eltorito-platform Mac" to create correct El Torito entry. Added a workaround for a Linux libc bug in cdda2wav. Many fixes in the SCCS documentation. The SCCS man pages now document the previously undocmented NSE extensions. SCCS now by default automagically calls "help" for error messages that contain a SCCS error code applicable for "help". Fixed a bug in SCCSs urandom.c. Some small bug fixes in SCCS for SCCSv6 history files. The SCCS test suite now checks the code twice: once for SCCSv4 history files and another time for SCCSv6 history files.
2014-06-1212 Aug 2014 14:08 minor feature: