schily 2018-01-26

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, btcflash, calc, calltree, change, compare, count, cpp (K&R original), cstyle, devdump, dmake based on SunPro Make, hdump, isodebug, isodump, isoinfo, isovfy, label, man2html, mt, od, p, POSIX patch, printf, sccs, scgcheck, scpio, scut, sdd, sfind, sformat, smake, sh/bosh (Bourne Shell), spaste, star, star_sym, strar, suntar, gnutar, tartest, termcap, and ved.

Tags software development build tools utilities
License CDDL
State development

Recent Releases

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: Bourne Shell: syntax errors are no able to clear the input in case the command line history editor is used. Bourne Shell: Fixed a bug that caused jobcontrol to fail with simple shell scripts. Bourne Shell: echo (( 1 + 3 + )) now prints an error message instead of the wrong "8". Bourne Shell: first demo for working loadable builtin commands is ready.
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 definitiond 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/ 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 major feature: Fixed a bug in the Bourne Shell from 2017-01-30. Fixed a bug in libschily::opendir.c emulation for Win-DOS. libstreamar: a new library for simple but powerful "stream archives". New command "strar": archiver based on libstreamar. diff: fixed a bug where diff did not exit() with excode 2 in case if errors. SCCS get with multiple files now works even when the admin flag "s" is set with a number 0. Some SCCS man pages have been enhanced. ved: allow to see an error message that was previously instantly overwritten. Some man pages did get typo fixes.
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: bsh: Fixed a bug with chained commands introduced by the change to use waitid(). 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.
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/ 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 not 80 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 20 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 not 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: 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. 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 a.
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. Star now flushes the verbose file stream at thee end. 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.
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 on *BSD as "Makefile" not 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 biultin "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: "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 used 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. The Bourne Shell also added 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 exstatus. Bourne Shell: On POSIX platforms ? 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 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: The Bourne Shell man page now mentions that the parameter assignement has been changed to be now left to right (as in ksh). SCCS was bumped to 5.07 + some enhancements: SCCSv6 history files now work correctly if the GMT offset is negative (USA). The SID string space was enhanced to avoid a buffer oferflow with very big (three dot) numbers. SCCS get now implements a new annotate option -A. The mkisofs helper programs isoinfo, isodevfy, isodump now first check for Rock Ridge before they try to print Rock Ridge meta 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: