schily 2018-12-06

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, calc, calltree, change, compare, count, cpp (K&R original), cstyle, devdump, dmake based on SunPro Make, hdump, isodebug, isodump, isoinfo, isovfy, label, 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, gnutar, tartest, termcap, and ved.

Tags software development build tools utilities
License CDDL
State development

Recent Releases

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 audiop 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. ibfind: -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 orints "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 orintf now contain tests for negative numbers. Bourne Shell: The confoemance tests that check the sh -x output now set PS4 to avoid wring resultf 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 dot. Makefilesystem: Added a workaround for a GNU linker bug that previously prevented to create versioned shared libraries on Linux. libschily: Avoid an endless look 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 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" 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: 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/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 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/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 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 .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 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: