Wed Dec 22 00:53:51 1993 Jim Meyering (meyering@comco.com) * expr.c (toarith): Interpret the empty string as just that rather than as the integer zero. Before, `expr "" == 0' output 1. Now it prints 0. * configure.in (AC_HAVE_HEADERS): Check for float.h for strtod.c. * configure.in (check for TIOCGWINSZ): Don't look in sys/ioctl.h or sys/ptem.h if we've already found it in termios.h. This eliminates redefinition warnings from including both termios.h and sys/ioctl.h on sytems running SunOS. From Matthew Seaman (matthew@dyson.ox.ac.uk). * date.1: Document new %s format and old `-' and `_' numeric field modifiers. * memcmp.c: Use the latest version from GNU C library. Mon Dec 20 23:29:30 1993 Jim Meyering (meyering@comco.com) * configure.in [test for 8-bit clean memcmp]: Add a test to detect losing memcmp from SunOS4.1.x. Sat Dec 18 01:12:24 1993 Jim Meyering (meyering@comco.com) * configure.in (AC_OUTPUT): Put `touch stamp-config' in second arg so it goes in config.status. This eliminates unnecessary second run of configure. Fri Dec 10 01:06:28 1993 Jim Meyering (meyering@comco.com) * stty.c (screen_columns): Instead of dying just because Solaris' `ioctl (0, TIOCGWINSZ' fails (strangely only for telnet sessions, not rlogin sessions), ignore its errno == EINVAL and try to get the number of columns another way. * stty.c (set_window_size): If ioctl to get window size fails, (as on telnet sessions to Solaris 2.[12] systems) try to set the requested fields anyway, setting to zero any unspecified fields. This is what Sun's /bin/stty appears to do. * (display_window_size): Don't display anything for the number of rows and columns if the ioctl call intended to get them fails. Tue Nov 30 23:58:54 1993 Jim Meyering (meyering@comco.com) * Version 1.9.2. Mon Nov 29 00:28:35 1993 Jim Meyering (meyering@comco.com) * stty.c, configure.in, acconfig.h: Revert change of Nov 26. I am no longer able to reproduce the behavior that prompted that patch -- but I had tested only using an old version of gcc. When building with a more recent version of gcc or with /bin/cc there is no problem. Sat Nov 27 15:11:21 1993 Jim Meyering (meyering@comco.com) * nice.c (main): If an adjustment is specified, but no command is given, give a diagnostic in addition to the usage message. (isinteger): Accept a leading `+'. Fri Nov 26 18:49:42 1993 Jim Meyering (meyering@comco.com) * stty.c [GWINSZ_BROKEN]: Define TIOCGWINSZ to TCGETS for Solaris-2.2. On that system, ioctl (0, TIOCGWINSZ, &win) always fails, but using TCGETS works. Reported by Francois Pinard. * configure.in [GWINSZ_BROKEN]: New test to detect Solaris' inability to get window size from ioctl using TIOCGWINSZ. * acconfig.h [GWINSZ_BROKEN]: Add an #undef. Mon Nov 22 23:40:21 1993 Jim Meyering (meyering@comco.com) * who.c [defined (UTMPX_FILE)]: (undef and) define UTMP_FILE to this value even if UTMP_FILE is already defined. Because some systems define both symbols. From Arne H. Juul. * [MESG_BIT]: Rename to S_IWGRP (from sys/stat.h>) and define only if not already defined. Fri Nov 19 23:08:03 1993 Jim Meyering (meyering@comco.com) * who.c (print_entry): Produce reasonably formatted output even when sizeof (this->ut_name,ut_line) are much larger than 8. For Solaris and other SysVr4. With help from Arne H. Juul. * configure.in (HAVE_UTMPX_H): New test; combined with test for the ut_host field. From Arne H. Juul. * memcmp.c: New file. * lib/Makefile.in [SOURCES]: Add memcmp.c. * configure.in (AC_REPLACE_FUNCS): Add memcmp. Add test for 8-bit clean memcmp. * configure.in (AC_HAVE_FUNCS): Add isascii. * expr.c [!defined (isascii) || defined (STDC_HEADERS)]: This failed on AIX PS/2 1.3 systems because isascii is a function and it is used in definitions (with the necessary side effect of assigning to a global variable) of the is* macros. Also test HAVE_ISASCII and redefine ISASCII(c) instead of isascii. Reported by Minh Tran-Le (tranle@intellicorp.com). * printf.c: Ditto. * configure.in (AC_HAVE_HEADERS): Add sys/timeb.h; getdate.y tests HAVE_SYS_TIMEB_H. * stty.c (main): Detect the case in which POSIX-conformant tcsetattr fails and still returns zero. Wed Nov 17 21:05:10 1993 Jim Meyering (meyering@comco.com) * yes.c (main): Complete my half-finished Nov 2 change. yes with arguments did not print newlines. From Andreas Schwab (ls5.informatik.uni-dortmund.de). * stty.c (wrapf): Fix off-by-one error that could make `stty -a' output lines one character too long. From Andreas Schwab. Sat Nov 13 00:11:19 1993 Jim Meyering (meyering@comco.com) * Version 1.9.1. * configure.in [LIBS]: Add -lbsd if that is necessary to get the syslog function. With help from Kaveh Ghazi. * configure.in [LIBS]: Reorganize/unify the code that adds libraries solely to resolve syslog. Add a library only if it is required to resolve the syslog reference. * configure.in [AC_HAVE_HEADERS]: Check for sys/timeb.h. getdate.y needs to know. [LIBS]: Check for initgroups in -los. This is required by SCO-ODT-3.0 when linking su. [LIBS]: Check -lufc for crypt. Reported by Steven W Orr (steveo@world.std.com). Thu Nov 11 23:55:48 1993 Jim Meyering (meyering@comco.com) * id.c [NGROUPS_MAX]: Undefine before redefining. From Kaveh R. Ghazi (ghazi@noc.rutgers.edu). * who.c (list_entries): Trim any trailing blanks from ut_name and make sure the string is NUL-terminated before printing it. Before, `who -q' displayed 8-character names with a tty (e.g. `q1') suffix. * stty.c [CFLUSHO]: Move this definition so it follows the one for VFLUSHO. Mon Nov 08 23:16:36 1993 Jim Meyering (meyering@comco.com) * Version 1.9. * su.c (correct_password): Report an error and fail if getpass returns NULL. Tue Nov 02 01:14:21 1993 Jim Meyering (meyering@comco.com) * acconfig.h: Add comments. * printenv.c (main): Exit with status == 2 for file error. * yes.c (main): Restore argv/optind handling -- now that parse_long_options doesn't change optind. Mon Oct 25 19:22:58 1993 Jim Meyering (meyering@comco.com) * basename.c, date.c, dirname.c, echo.c, env.c, expr.c, id.c, logname.c, nice.c, pathchk.c, printenv.c, printf.c, sleep.c, stty.c, su.c, tee.c, test.c, tty.c, uname.c, who.c, whoami.c, yes.c: Use the preferred `--longopt=arg' syntax in --help message rather than `--longopt arg'. From Francois Pinard. * stty.c (main, integer_arg): Don't just call error(1,... about improper usage. Call `error (0,...' then usage (1). Sun Oct 24 14:10:23 1993 Jim Meyering (meyering@comco.com) * test.c [member]: Don't try to cast index return value to an int. That can lose on systems with 64-bit pointers. * long-options.c: Save and restore optind, too. * long-options.h: New file. * long-options.c, echo.c, expr.c, printf.c, test.c, yes.c: Include it instead of duplicating dcls. * src/Makefile.in: Add dependencies for it. Tue Oct 19 00:26:27 1993 Jim Meyering (meyering@comco.com) * expr.c [!__STDC__]: Don't define away `const'. configure alone decides whether to do that. From Francois Pinard. Sat Oct 16 22:32:54 1993 Jim Meyering (meyering@comco.com) * whoami.c (main): Cast printf arg UID so it matches the type expected by %u format no matter how uid_t is defined. * stty.c: Accept `status' option and VDISCARD as an alias for VFLUSHO. From Arne H. Juul (arnej@imf.unit.no). * basename.c, date.c, dirname.c, echo.c, env.c, expr.c, false.sh, groups.sh, id.c, logname.c, long-options.c, nice.c, nohup.sh, pathchk.c, printenv.c, printf.c, sleep.c, stty.c, su.c, tee.c, test.c, true.sh, tty.c, uname.c, who.c, whoami.c, yes.c: Using --help gets long well- formatted help. Now --help writes to stdout and exits successfully. From Francois Pinard . Wed Oct 13 13:10:27 1993 Jim Meyering (meyering@comco.com) * long-options.c: Include sys/types before system.h. From Franc,ois Pinard (pinard@iro.umontreal.ca). Tue Oct 12 00:53:26 1993 Jim Meyering (meyering@comco.com) * stime.c [HAVE_CONFIG_H, CONFIG_BROKETS]: Include or "config.h". * src/Makefile.in [clean]: Also delete '['. Sun Oct 10 14:05:23 1993 Jim Meyering meyering@comco.com * false.sh, groups.sh, nohup.sh, true.sh: Add --help and --version. * src/Makefile.in (false, groups, nohup, true): Substitute the string from version.c for @VERSION@ in *.sh. Sat Oct 9 23:12:53 1993 Jim Meyering meyering@comco.com * configure.in: Remove AC_UNISTD_H; add unistd.h to AC_HAVE_HEADERS. Tue Oct 5 22:18:05 1993 Jim Meyering meyering@comco.com * tty.c (main): Detect write error. Use isatty (rather than testing whether ttyname() is NULL) to determine exit status because ttyname may return NULL when stdin is a terminal device. * expr.c (eval7): Rewrite if-else-if-else... sequence to avoid a spurious `function returns without a value' warning. * printenv.c (main), tty.c (main): Detect and report write errors. * echo.c, patchchk.c, printenv.c, printf.c, sleep.c, stty.c, su.c, tee.c, test.c, tty.c, uname.c, yes.c: Accept --help and --version options. * long-options.c: New file. To let echo, expr, printf, test, and yes accept --help and --version as unobtrusively as possible. * src/Makefile.in [SORUCES]: Add it. * configure.in: Add AC_TIME_WITH_SYS_TIME and AC_STAT_MACROS_BROKEN. * nice.c (main) [NICE_PRIORITY]: When given an argument, don't try to get current priority. nice() requires only the delta; we don't need to compute the absolute priority as for setpriority. Mon Oct 04 22:15:07 1993 Jim Meyering (meyering@comco.com) * who.c (print_entry, print_heading, who_am_i): Cast printf field width arguments to int to avoid warnings. (idle_string): Cast idle seconds and minutes to int. Declare functions read_utmp and idle_string to be static. Don't declare ttyname as static. * echo.c (just_echo): Use putchar instead of printf. * expr.c (parse_long_options): New function. (main): Use it to handle --version and --help properly. * tee.c (main): Put entire #ifdef inside if-braces to make structure clearer. (main, tee): Compare close() != 0 rather than close () == -1. * pathchk.c (portable_chars_only, dir_ok): Make a couple variables const. Wed Sep 08 00:07:36 1993 Jim Meyering (meyering@comco.com) * test.c [advance, unary_advance]: Rewrite using do{...}while(0) paradigm instead of comma expressions that make Alpha OSFv1.3 C compiler segfault. * basename.c, date.c, dirname.c, env.c, id.c, logname.c, nice.c: Add --help and --version options. Sat Jul 24 08:52:18 1993 Jim Meyering (meyering@comco.com) * configure.in: Check for -lshadow. Linux needs it when using shadow passwords. Reported by Mattias Olofsson . Thu May 27 20:05:50 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) * configure.in (c_line test): Add missing `fi'. Tue May 18 23:49:26 1993 Jim Meyering (meyering@comco.com) * mkinstalldirs: New file. * Makefile.in (installdirs): Use it. Thu May 13 01:03:16 1993 Jim Meyering (meyering@comco.com) * Makefile.in (installdirs): New rules for creating installation directories. (install): depend on it. Mon May 3 22:09:24 1993 Jim Meyering (meyering@comco.com) * configure.in: Add AC_GETGROUPS_T. * id.c, test.c: Don't define GETGROUPS_T. Now configure does it. Sun May 2 00:21:05 1993 Jim Meyering (meyering@comco.com) * expr.c (eval6): Terminate result with a zero byte. The command `expr substr xx 1 2' would fail on systems with tight malloc. From Steve James . * expr.c (null): Recognize the string `0' as zero. (divide, mod): Upon request to divide by zero, give an error message instead of dumping core. From J.T. Conklin . * configure.in: Check for sys/time.h; getdate.y needs it for structs timeval and timezone on some systems. * Check for gettimeofday and for `struct tm'. * Add existence tests for memcpy and bcopy. * configure.in: Find a parser generator. * putenv.c: Include stdlib.h only if __GNU_LIBRARY__ is defined. Many vendor-supplied have a declaration of putenv that conflicts with ours. Tue Apr 20 02:33:24 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu) * stty.c: Use GWINSZ_IN_SYS_IOCTL, not _AIX, to determine whether sys/ioctl.h is needed to support `stty size'. Thu Apr 1 18:03:47 1993 Jim Meyering (meyering@comco.com) * printf.c, expr.c [isascii]: Undefine before redefining. Sun Mar 28 00:07:45 1993 Jim Meyering (meyering@comco.com) * stty.c: Accept `flush' option. From Arne H. Juul arnej@lise.unit.no * system.h: Don't define r?index, bcopy... if they're already defined. Thu Mar 25 22:41:01 1993 Jim Meyering (meyering@comco.com) * configure.in: Add AC_IRIX_SUN to get -lsun because Irix-4.0.5's libc.a doesn't have yp/NIS entrypoints. From Kjetil Wiekhorst J|rgensen . Fri Mar 05 00:02:53 1993 Jim Meyering (meyering@comco.com) * date.c: Add long-named options. Sun Dec 6 23:17:09 1992 Jim Meyering (meyering@comco.com) * date.c: Remove unused definition of isdigit. * expr.c (toarith): Change single use of isdigit to ISDIGIT. * printf.c (print_formatted, print_esc): Define ISDIGIT and ISXDIGIT and use them instead of isdigit and isxdigit. Wed Dec 2 12:49:11 1992 Jim Meyering (meyering@comco.com) * env.c, id.c, nice.c, pathchk.c, stty.c, su.c, tee.c, tty.c, uname.c, who.c: Convert static declarations of struct option to use new macros from getopt.h: no_argument, required_argument, and optional_argument. Tue Nov 24 09:46:02 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) * echo.c: Use V9_DEFAULT instead of USG. Define it always. * system.h: Use HAVE_FCNTL_H and HAVE_STRING_H instead of USG. Wed Nov 11 18:19:10 1992 Jim Meyering (meyering@hal.gnu.ai.mit.edu) * All files in src: Make all functions and extern variables static. Make all longopts arrays const as well as static. Make a couple statically initialized aggregates `const.' * pathchk.c (portable_chars_only): Cast char used as array index. * echo.c (main), su.c (restricted_shell): Add parentheses to assignment statements used in boolean context. * stty.c (set_mode): Parenthesize expressions with bit operations to correctly set/reset modes bits. Wed Oct 28 14:16:48 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) * Version 1.8. * stty.c: Accept Irix VRPRNT for VREPRINT. From Jim Meyering. * stty.c: Fix some type mismatches. From Bruce Evans, bde@runx.oz.au. * who.c (read_utmp): Close file on error. From Bruce Evans. * su.c, test.c: Add some decls. From Bruce Evans. * sleep.c (main): Arg to sleep is unsigned, not long. From Bruce Evans. Fri Sep 11 00:25:52 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) * echo.c, echo.1: New files. Thu Sep 10 18:42:44 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) * pathchk.c (main): Don't strip trailing slashes from args; they might make a path invalid. (portable_chars_only, dir_ok): New functions. (validate_path): Renamed from validate_new_path. Call them. Don't complain if a leading dir doesn't exist. Don't replace `parent' with a dir that doesn't exist. Don't print a message when falling back from pathconf to constant values. * who.c [!UTMP_FILE]: If _PATH_UTMP is defined, use it instead of /etc/utmp. From Marc Boucher . Tue Aug 25 17:02:25 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) * Version 1.7. * groups.sh, nohup.sh: Add $(bindir) to front of path. Mon Aug 24 16:39:39 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) * stty.c: make sane value for "min" 1, not 0. From haible@ma2s2.mathematik.uni-karlsruhe.de (Bruno Haible). Sun Aug 23 03:02:07 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) * id.c, test.c: Use NGROUPS_MAX if it's defined. 386BSD is like sun. Sat Aug 22 03:16:41 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) * test.c: Rename STANDALONE to TEST_STANDALONE to avoid IBM RT ACIS sys/param.h conflict. * su.c (correct_password) [HAVE_SHADOW_H]: Try to get the encrypted correct password from the shadow password file. Fri Jul 17 15:25:01 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) * su.c, getusershell.c: New files. Fri Jul 3 15:08:43 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) * stty.c, who.c: Change FOO_MISSING to HAVE_FOO. Fri Jun 5 01:49:29 1992 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu) * strcspn.c: New file. * expr.c: Misc. cleanups. * expr.c (eval7): Renamed from eval6. Give syntax error if no more args. Don't coerce all values to numbers. (eval6): New function. (eval5): Accept == as a synonym for =. (eval2): Coerce values to numbers for comparisons. Above all from Dana Jacobsen (jacobsd@prism.cs.orst.edu). Thu Jun 4 19:32:09 1992 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu) * printf.c (print_formatted): Move main loop into new function. (main): Add an outer loop to use the format multiple times. (verify): Don't reject a completely empty string. Check errno (for overflow). * false.sh, true.sh: New programs. Oh, boy. Thu May 14 01:17:22 1992 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu) * stty.c (set_mode): Support crt and dec modes partially if necessary, so they work on, for example, Ultrix . . . . Wed May 13 14:47:45 1992 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu) * stty.c (set_mode): Swap nl and -nl. Have them also affect output as well as input. Tue May 12 00:07:28 1992 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu) * date.c (show_date): Use strftime for the whole conversion. Tue May 5 15:20:24 1992 David J. MacKenzie (djm@hal) * stty.c (wrapf): Print the formatted buffer; don't redo the formatting using vprintf. Thu Apr 30 01:17:08 1992 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu) * printf.c (xstrtol, xstrtoul, xstrtod, verify): New functions. (main, print_direc): Use them. Make error messages more specific. * tee.c (tee): Only malloc and free the table of file descriptors if >0 files are given. Fri Apr 17 11:56:48 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu) * pathchk.c (validate_new_path): Print the name of the component that failed the length test, not the whole path. From Andreas Schwab (schwab@ls5.informatik.uni-dortmund.de). Mon Apr 6 15:11:36 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu) * who.c (read_utmp): Check close return for error. (print_heading): Align columns based on sizes of utmp members. (who_am_i): Skip past /dev/ instead of skipping leading path. Mon Mar 16 23:47:03 1992 David J. MacKenzie (djm@apple-gunkies.gnu.ai.mit.edu) * date.c (show_date): Don't call strftime if FORMAT is the empty string. * date.c (main): Reorganize to reduce duplicated code. Add -d option. (usage): Document -d. (set_date): Function removed. Tue Feb 11 16:12:18 1992 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * printf.c (print_esc): When a numeric escape is given, don't call print_esc_char, and return 1 less. From Thorston Ohl. Mon Jan 20 02:17:18 1992 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * Version 1.6. * test.c: HAVE_MULTIPLE_GROUPS -> HAVE_GETGROUPS, for bash 1.11. Fri Jan 17 15:46:18 1992 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * expr.c (docolon): Use re_nsub to find the number of subexpressions . . . From Karl Berry, who knows. Wed Dec 25 23:27:53 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * expr.c (docolon): Use the new way (re_regs.num_regs > 0) to find out if there were any subexpressions, instead of the old way (re_regs.start[1] >= 0), which can cause random memory accesses with regex 0.1. From Brian Matthews. Tue Dec 24 02:12:15 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * system.h, id.c, pathchk.c, tee.c: Change POSIX ifdefs to HAVE_UNISTD_H and _POSIX_VERSION. Wed Dec 11 13:15:09 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * Version 1.5. * expr.c (main): Set obscure_syntax to tell re_match to allocate memory for the group registers. Mon Dec 9 16:03:14 1991 Charles Hannum (mycroft at hal.gnu.ai.mit.edu) * who.c (list_entries): Check type == USER_PROCESS if defined, for SysV. Sat Dec 7 00:32:02 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * Version 1.4. * env, id, nice, pathchk, stty, tee, tty, uname: Change usage messages and documentation to list long-named options starting with `--' rather than `+'. * env.c (main), nice.c (main): Simplify test for which exit status to use if exec fails. Fri Dec 6 23:49:42 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * tee.c (main) [POSIX]: Use sigaction instead of signal, which POSIX doesn't have. Fri Oct 18 00:31:35 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * test.c (two_arguments): Fix from Chet. * expr.c: Include regex.h after sys/types.h, not before, so size_t gets defined. * test.c: New version, adapted from bash 1.10. * id.c: GID_T -> GETGROUPS_T, for clarity. Sat Oct 12 14:38:34 1991 David J. MacKenzie (djm at churchy.gnu.ai.mit.edu) * configure: Define uid_t and gid_t as int if they're not defined in sys/types.h. That's probably right for old Unixes and avoids trying to find the C preprocessor. Sat Sep 28 13:01:23 1991 David J. MacKenzie (djm at churchy.gnu.ai.mit.edu) * stty.c (set_mode): Make `raw' and `cooked' not change parity and character size, which would probably make them useless on 7-bit lines. Make `raw' set the `time' character to 0, not 1. From Bruce Evans. * nohup.sh: If creating nohup.out, give it mode 0600, for POSIX. Fri Sep 13 14:59:51 1991 David J. MacKenzie (djm at churchy.gnu.ai.mit.edu) * id.c [POSIX]: Always use sysconf to get NGROUPS_MAX. Thu Aug 29 14:43:07 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * test.c: Don't include sys/file.h if POSIX. Use gid_t for getgroups. * stty.c (set_mode): Use CEOF and CEOL instead of hardcoding them. (display_speed): Fix a printf string type mismatch. From Bruce Evans. Mon Aug 26 16:52:51 1991 David J. MacKenzie (djm at pogo.gnu.ai.mit.edu) * configure, src/Makefile.in, lib/Makefile.in: Only put $< in Makefiles if VPATH is being used, because older makes don't understand it. Mon Aug 19 01:57:46 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * Version 1.3. Sat Aug 17 22:48:15 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) * src/Makefile.in (install): Install a link to test called '['. Wed Aug 14 12:22:57 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) * test.c (unary_operator): Check first char of string, not its address. Sun Aug 11 18:10:30 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * Version 1.2. * system.h: Define S_IFMT if needed, for test.c. * test.c: New file, from bash. * nice.c: Change +priority to +adjustment (more accurate). Sat Aug 10 13:09:51 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * stty.c [WINSIZE_IN_PTEM]: sys/ptem.h requires sys/stream.h. * nice.c, configure: Use nice if available and setpriority is missing. Thu Aug 8 01:34:05 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * date.c: USG needs TZ=GMT0 for UCT timezone, also. * stty.c: Add pass8 and litout modes. Sun Aug 4 22:45:51 1991 David J. MacKenzie (djm at wheat-chex) * Version 1.1. Fri Aug 2 13:22:31 1991 David J. MacKenzie (djm at apple-gunkies) * configure: Implement +srcdir. Don't check for bison. * stty.c: Don't change ixon in "sane" mode. * configure: Use 1 instead of 255 for checking tzname, because of signedness. Thu Aug 1 13:40:58 1991 David J. MacKenzie (djm at apple-gunkies) * printenv.c (main): Don't print the variable names when given args, as people seem to use printenv in scripts after all . . . . * stty.c: Don't change parity or character size settings in "sane" mode. The right values for those depend on the hardware. Wed Jul 31 01:19:01 1991 David J. MacKenzie (djm at hal) * stty.c [_AIX]: Include sys/ioctl.h -- needed on AIX to get window size. Tue Jul 30 00:06:54 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * getdate.y: New file. * date.c: Add -s option to set date in English. * configure: Check for ftime. * date.c: Remove COMPUTE_TM_ZONE code, which didn't work. * configure: Instead of checking whether tzname is declared, check whether it exists. * logname.c (main): Go back to just printing an error message if getlogin fails, as required by POSIX. * stty.c (screen_columns, wrapf): New functions to implement output wrapping. Globally: use them. * configure: Define uid_t and gid_t if sys/types.h doesn't. * system.h: Define F_OK et al. if nothing else does. Mon Jul 29 21:11:16 1991 David J. MacKenzie (djm at wombat.gnu.ai.mit.edu) * pathchk.c (validate_new_path): Rearrange tests so that pathconf is only called on existing directories. Use access instead of stat to determine directory searchability. From Jim Meyering. * stty.c, configure: Add WINSIZE_IN_PTEM and GWINSZ_BROKEN for SCO. Wed Jul 24 02:13:31 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * stty.c (sane_mode): Always set control chars to sane values. Set min and time if they're different from eof and eol. * whoami.c: Print UID as unsigned. * logname.c: Do "whoami" if getlogin fails. * logname.c (main): fprintf was missing an arg. Tue Jul 23 02:20:15 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * id.c: GID_T is int if ultrix as well as if sun. * stty.c: Implement raw and cooked modes. Mon Jul 22 15:21:21 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * tee.c (main): close stdin and stdout to check for errors. * stty.c: Use tcflag_t for termios bitmasks. Use speed_t for speeds. Use unsigned long for baud rates to accomodate large values, and support 57600 and 115200 if available. * date.c, configure: Instead of SIZE_T_MISSING, define size_t if it's missing. * id.c, whoami.c: Use uid_t and gid_t. * id.c: If POSIX and not sun (bogus!), pass getgroups and getugroups an array of gid_t instead of int. * system.h: New file. * Most programs: include it. Fri Jul 19 12:04:58 1991 David J. MacKenzie (djm at apple-gunkies) * env.c [!STDC_HEADERS]: Declare errno. * printf.c, pathchk.c: Don't include errno.h; not needed. * version.c: New file. * All C programs: Link with it, to get version number in the binary where at least `strings -' and grep can find it. * pathchk.c (strip_trailing_slashes): Function removed; use version in lib. Mon Jul 15 11:34:22 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * Version 1.0. * pathchk.c: Always check whether _POSIX_PATH_MAX and _POSIX_NAME_MAX need to be defined. [POSIX]: If no PATH_MAX or NAME_MAX and pathconf for the path returns -1 (some systems do this if the path does not exist), use pathconf for "/". Sun Jul 14 21:17:22 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) * date.c (date_seconds): Function removed, replaced with posixtm.y in lib. (set_date): Change caller. * configure: Check for bison. * stty.c [!C_LINE_MISSING]: Add support for setting and printing the line discipline. * configure: Check for C_LINE_MISSING. * configure: Check for Minix. Sat Jul 13 01:33:59 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) * Add `man' directory and manual pages. * configure: Set INSTALLDATA and MAN. * id.c: Add #ifdefs for POSIX ways of getting max groups list size. (print_group_list, print_full_info): Allocate list of groups with malloc since its size might not be constant. * nice.c (main): Don't adjust priority if printing it. Default adjustment of 10, not 0. * printf.c: Add \c escape and %b conversion. Implement '*' for field width and precision. Make all errors fatal. (print_esc_string, print_esc): New functions. * configure, date.c: Change SYS_TIME_H to TM_IN_SYS_TIME. * configure: Always check where to find struct tm. * yes.c: Rewrite to accept multiple arguments. * Add groups.sh. Fri Jul 12 10:57:00 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) * dirname.c: Move code from dirname function into main, simplifying things quite a bit. From Jim Meyering. * Omit strdup from lib; no longer used. * configure: Don't check for strdup. * printenv.c (main): If args given, print the values in the order given on the command line rather than the order given in the environment. * tee.c, tty.c (struct longopts): Revise to make short-option equivalents clear. Thu Jul 11 12:46:11 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) * nice.c: Add long options. * Add date command and libraries it needs. * configure: Updated. * env.c: Add long options. Use GNU putenv instead of custom setenv function. * id.c: Add long options. * pathchk.c [POSIX]: Use pathconf if necessary to get NAME_MAX and PATH_MAX. * nice.c: Use exit status required for nohup by POSIX.2 (nohup execs nice). * sleep.c: Don't bother with hex and octal. * env.c: Fix exit status for POSIX.2 draft 11.1. * Many files: Remove private copies of xmalloc, error, xstrdup, etc. to use shared versions. Fix #includes for USG, STDC_HEADERS, POSIX. Mon Jul 8 18:56:24 1991 David J. MacKenzie (djm at churchy.gnu.ai.mit.edu) * date.c (main): For -u, set TZ to "" instead of "GMT0", unless on HP-UX or Ultrix. * Rename some feature-test macros. * stime.c: Created from code in date.c. * date.c (compute_tm_zone): New function. (date_seconds, show_date): Use it. (xmalloc, xrealloc): Functions removed; use xmalloc.c instead. Tue Jul 2 02:28:11 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) * tee.c (tee): Report errors in closing files. Mon Mar 18 10:13:59 1991 Jeffrey A. Law (law at geech.ai.mit.edu) * date.c (date_seconds, show_date): #if COMPUTE_TMZONE then compute the proper value to place in tm->tm_zone from information returned by localtime and gettimeofday. Fri Apr 26 11:38:09 1991 David J. MacKenzie (djm at mole.gnu.ai.mit.edu) * stty.c: Define default values for control chars if necessary. Complain about invalid options if no other options follow. Use POSIX functions instead of ioctl, for manipulating termios. * expr.c (main): Exit status was backwards. Thu Dec 20 00:36:01 1990 David J. MacKenzie (djm at apple-gunkies) * id.c: Reorganization and many changes to fix bugs and POSIX compliance problems. Mon Dec 10 03:09:13 1990 David J. MacKenzie (djm at apple-gunkies) * stty.c: Don't declare printf and some other functions that might have variable numbers of args in system header file decls. Tue Nov 14 23:37:22 1990 Roland McGrath (roland at geech.ai.mit.edu) * id.c (print_groups): Put spaces after commas. (print_group): New fn, to print a group id. Uses numeric fmt unless -n, in which case it uses group names. (print_groups): Call it. Find the rgid and egid, and print them as well as the supplementary groups. Make sure we print each group only once. Sun Sep 16 01:49:14 1990 David J. MacKenzie (djm at apple-gunkies) * id.c (main): Add -G option for POSIX.2 draft 10. Allow a username to be given. (print_groups): New function from code in main. (getugroups): New function. Sun Aug 12 00:32:01 1990 David J. MacKenzie (djm at albert.ai.mit.edu) * env.c (main): Instead of setting _POSIX_OPTION_ORDER, tell getopt to not permute, with `+'. Sat Aug 11 01:32:53 1990 David J. MacKenzie (djm at albert.ai.mit.edu) * expr.c: Use regex.c library instead of private regex routines. * nice.c (main): Add -n option for POSIX.2a. (usage): New function. Fri Aug 10 23:58:11 1990 David J. MacKenzie (djm at albert.ai.mit.edu) * who.c: Add -m, -i, -w options for POSIX.2a. Tue Aug 7 00:01:02 1990 David J. MacKenzie (djm at apple-gunkies) * expr.c: Use exit directly instead of longjmp on error. Use argv[0] instead of hardcoded "expr" in messages. Make some functions void. Sat Aug 4 21:19:25 1990 David J. MacKenzie (djm at pogo.ai.mit.edu) * env.c: Change exit statuses for POSIX draft 10. Wed Jul 4 04:32:51 1990 David J. MacKenzie (djm at apple-gunkies) * tee.c: Use error instead of perror_with_name and out_of_memory. Wed Jun 20 02:39:49 1990 David J. MacKenzie (djm at albert.ai.mit.edu) * date.c: Change -DSETTOD to -DSTIME_MISSING, -DSIZE_T to -DSIZE_T_IN_TYPES, and -DSTDC_HDRS to -DSTDC_HEADERS. Declare some more functions. Replace fatal, memory_out, and nonfatal_perror with error. Mon Jun 18 00:16:52 1990 David J. MacKenzie (djm at apple-gunkies) * stty.c: Add some Unix compatibility modes. Sat Jun 16 21:05:59 1990 David J. MacKenzie (djm at apple-gunkies) * stty.c (display_changed, display_all): Print values of min and time. Thu Jun 14 17:49:31 1990 David J. MacKenzie (djm at apple-gunkies) * stty.c: Implement tab, backspace, etc. delay args. Thu May 31 12:25:40 1990 David J. MacKenzie (djm at albert.ai.mit.edu) * nohup.sh: Don't ignore SIGTERM. If ./nohup.out is unwritable, try $HOME/nohup.out. Thu May 3 22:33:32 1990 David J. MacKenzie (djm at albert.ai.mit.edu) * who.c: Use error instead of fatal and fatal_perror. (print_headings): Print headings in all caps, like SYSV does. (list_entries): New function for -q to make it like SYSV -q. (valid_entries): Function removed. Mon Apr 2 01:27:23 1990 David J. MacKenzie (djm at albert.ai.mit.edu) * id.c (main): Don't strip off leading path from program name. Revise a couple of error messages. * whoami.c (main): Use geteuid, not getuid, for Unix compatibility. Tue Mar 20 14:28:25 1990 David J. MacKenzie (djm at pogo.ai.mit.edu) * tee.c (main): Pass list of files and its size as args to tee rather than as global vars. Exit with return value of tee instead of always 0. (tee): Use unbuffered I/O instead of stdio, for POSIX. Return an error status. (xwrite): New function. Tue Mar 13 00:38:13 1990 David J. MacKenzie (djm at albert.ai.mit.edu) * who.c (who_am_i): Print heading before checking to see whether there is an entry for the tty on stdin, for consistency with the who function. (main): Use argv[optind], not argv[1], as alternate file. Fri Mar 9 15:49:04 1990 David J. MacKenzie (djm at albert.ai.mit.edu) * who.c: Rename UTMP to UTMP_FILE for compatibility with SysV utmp.h. Include some additional header files. (main): Recognize some options from SysVr3 who. Call usage. Set new global var `program_name' from argv[0]. (usage): New function. (who): If -q given, only print count of users logged on. (print_entry): New function to format an entry on the output; make format more like that of the Unix who programs. (print_heading): New function to print a line describing each output field. (who, who_am_i): Call print_entry and print_heading. (valid_entries): New function to return count of nonempty entries in utmp. (search_entries): Compare with utmp tty field instead of username field. Don't assume null termination in utmp field. (who_am_i): Print the entry for the tty on stdin rather than the first entry found for the uid. If hostname is not available, use a null one instead of "". Don't hardcode max hostname length. (idle_string): New function to format idle time field. (fatal, fatal_perror): Use program_name instead of hardcoded "who" in error messages. Tue Mar 6 00:59:03 1990 David J. MacKenzie (djm at albert.ai.mit.edu) * printenv.c (main): Allow multiple variables to be specified. (barf): Function removed. Sat Jan 20 18:41:48 1990 Jim Kingdon (kingdon at geech) * expr.c (nextarg): Do not pass *args to strcmp if NULL. Mon Dec 18 09:57:20 1989 David J. MacKenzie (djm at hobbes.ai.mit.edu) * printenv.c (main): Simplify error messages. Sat Dec 16 15:15:50 1989 David J. MacKenzie (djm at hobbes.ai.mit.edu) * expr.c: Indent to regularize spacing. (cmpv, arithf): Change '#define foo (args)' to '#define foo(args)' so they compile. (docolon): Remove unused vars. (multiply): Rename from times to avoid libc conflict. (error): Include program name in message. (xmalloc): Rename from Malloc. (re_compiled): Rename from re_comp to avoid libc conflict. * basename.c: Fix some weird indentation. (main): Print a clearer usage message. Use a simpler method for removing suffix, if given. (fatal): Function no longer used; removed. * sleep.c: (main): Rename `time' to `seconds'. Print usage message if given no args. Exit with status 0 instead of falling off end. (error): Print to stderr, not stdout. * tee.c: (main): Use getopt_long instead of custom parser, and adjust usage message. Use list of filenames in argv rather than making a copy. (tee): New function created from the second half of main. Fix bug where it tried to fclose a loop index instead of a stream. (xmalloc): Ok to return 0 if 0 bytes requested. (xrealloc): Unused function removed. * whoami.c: Canonicalize usage message and fix error message. * who.c: Declare some functions. (fatal_perror): New function for printing errors after system calls. Global: Use it when appropriate. (xmalloc): Return char *, not int. (read_utmp): Ok if utmp file is empty. Include filename in error messages. (scan_entries): Adjust columns to line up better, particularly when there are users with 8 character long usernames logged in. Sat Oct 28 13:20:43 1989 David J. MacKenzie (djm at spiff) * uname.c: Added long options. global: changed the word `part' to the word `element' (more precise). (program_name, long_options): New variables. (main): Support long options. (usage): Add long options summary to message. Local Variables: mode: indented-text left-margin: 8 version-control: never End: