changeset 378:a9adc1ae0f6c

Prepare for license switch by (regrettably) removing Charlie Shepherd's code, at least until I can get in touch with him to to get permission to relicense it. Charlie's @gentoo address bounces, and he hasn't replied to his @gmail address. I welcome him as a contributor but can't _find_ him, so I can't ship his basename, dirname, mkfifo, touch, and tty command code under a non-GPL license. This essentially reverts the following commits: 147: implement touch 157: implement mkfifo 160: tweak touch 161: touch bugfix 162: touch -l 176: implement basename, dirname 179: implement tty I also looked at these commits, which Charlie contributed to but which don't need to be reverted. (Mostly whitespace changes and typo fixes, plus some minor changes to build infrastructure that don't affect the resulting code.) *149: add null pointer check *154: add .hgignore *155: whitespace *156: whitespace (the rest is by me) *158: add toys/help.h to makefile dependencies *159: fix typo in description *164: typo in df (dereference pointer) *180: .hgignore *182: whitespace in error messages *183: add headers to make dependencies *244: comment and whitespace cleanups *247: build tweak: error checking *248: typo in comment *249: .hgignore *250: wrong word in comment *251: whitespace *252: whitespace Several files in the "scripts" directory are still GPLv2 (kconfig, bloat-o-meter, Robert Foglietta's bash version of config2help.sh), but they're just build infrastructure that doesn't wind up in the resulting binary. I plan to address this later on general principles, but it's "mere aggregation" and not an immediate priority.)
author Rob Landley <rob@landley.net>
date Sun, 13 Nov 2011 20:02:47 -0600
parents 15ca7e49b6ff
children 74526fc22c25
files toys/basename.c toys/dirname.c toys/mkfifo.c toys/touch.c toys/tty.c
diffstat 5 files changed, 0 insertions(+), 240 deletions(-) [+]
line wrap: on
line diff
--- a/toys/basename.c	Sat May 21 22:54:21 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/* vi: set sw=4 ts=4:
- *
- * basename.c - print non-directory portion of path
- *
- * Copyright 2007 Charlie Shepherd <masterdriverz@gentoo.org>
- *
- * See http://www.opengroup.org/onlinepubs/009695399/utilities/basename.html
-
-USE_BASENAME(NEWTOY(basename, "<1>2", TOYFLAG_BIN))
-
-config BASENAME
-	bool "basename"
-	default y
-	help
-	  usage: basename path [suffix]
-
-	  Print the part of path after the last slash, optionally minus suffix.
-*/
-
-#include "toys.h"
-
-void basename_main(void)
-{
-	char *name = basename(*toys.optargs);
-	char *suffix = toys.optargs[1];
-	if (suffix) {
-		char *end = name+strlen(name)-strlen(suffix);
-		if (end>name && !strcmp(end,suffix)) *end=0;
-	}
-	puts(name);
-}
--- a/toys/dirname.c	Sat May 21 22:54:21 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/* vi: set sw=4 ts=4:
- *
- * dirname.c - print directory portion of path, or "." if none.
- *
- * Copyright 2007 Charlie Shepherd <masterdriverz@gentoo.org>
- *
- * See http://www.opengroup.org/onlinepubs/009695399/utilities/dirname.html
-
-USE_DIRNAME(NEWTOY(dirname, "<1>1", TOYFLAG_BIN))
-
-config DIRNAME
-	bool "dirname"
-	default y
-	help
-	  usage: dirname path
-
-	  Print the part of path up to the last slash.
-*/
-
-#include "toys.h"
-#include <libgen.h>
-
-void dirname_main(void)
-{
-	puts(dirname(*toys.optargs));
-}
--- a/toys/mkfifo.c	Sat May 21 22:54:21 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/* vi: set sw=4 ts=4:
- *
- * mkfifo.c: Create a named pipe.
- *
- * See http://www.opengroup.org/onlinepubs/009695399/utilities/mkfifo.html
-
-USE_MKFIFO(NEWTOY(mkfifo, "<1m:", TOYFLAG_BIN|TOYFLAG_UMASK))
-
-config MKFIFO
-	bool "mkfifo"
-	default y
-	help
-	  usage: mkfifo [-m mode] name...
-
-	  Makes a named pipe at name.
-
-	  -m mode	The mode of the pipe(s) created by mkfifo. It defaults
-			to 0644.  This number is in octal, optionally preceded
-			by a leading zero.
-*/
-
-#include "toys.h"
-
-DEFINE_GLOBALS(
-	char *mode;
-)
-
-#define TT this.mkfifo
-
-void mkfifo_main(void)
-{
-	char *arg;
-	int i;
-	mode_t mode;
-
-	if (toys.optflags) {
-		char *end;
-		mode = (mode_t)strtol(TT.mode, &end, 8);
-		if (end<=TT.mode || *end || mode<0 || mode>0777)
-			error_exit("Invalid mode");
-	} else mode = 0644;
-
-	for (i = 0; (arg = toys.optargs[i]); i++)
-		if (mkfifo(arg, mode))
-			perror_exit(arg);
-}
--- a/toys/touch.c	Sat May 21 22:54:21 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/* vi: set sw=4 ts=4:
- *
- * touch.c - Modify a file's timestamps.
- *
- * Copyright (C) 2007 Charlie Shepherd <masterdriverz@gentoo.org>
- *
- * See http://www.opengroup.org/onlinepubs/009695399/utilities/touch.html
-
-USE_TOUCH(NEWTOY(touch, "l#t:r:mca", TOYFLAG_BIN|TOYFLAG_UMASK))
-
-config TOUCH
-	bool "touch"
-	default y
-	help
-	  usage: touch [-acm] [-r FILE] [-t MMDDhhmm] [-l bytes] FILE...
-
-	  Change file timestamps, ensure file existance and change file length.
-
-	  -a	Only change the access time.
-	  -c	Do not create the file if it doesn't exist.
-	  -l	Length to truncate (or sparsely extend) file to.
-	  -m	Only change the modification time.
-	  -r	Reference file to take timestamps from.
-	  -t	Time to change {a,m}time to.
-*/
-
-#include "toys.h"
-
-DEFINE_GLOBALS(
-	char *ref_file;
-	char *time;
-	long length;
-)
-
-#define TT this.touch
-
-#define OPT_MTIME       0x01
-#define OPT_NOCREATE    0x02
-#define OPT_ATIME       0x04
-#define OPT_REFERENCE   0x08
-#define OPT_TIME        0x10
-#define OPT_LENGTH      0x20
-
-void touch_main(void)
-{
-	char *arg;
-	int i, set_a, set_m;
-	time_t curr_a, curr_m;
-
-	set_a = !!(toys.optflags & OPT_ATIME);
-	set_m = !!(toys.optflags & OPT_MTIME);
-
-	// Use timestamp on a file
-	if (toys.optflags & OPT_REFERENCE) {
-		struct stat sb;
-
-		if (toys.optflags & OPT_TIME)
-			error_exit("Redundant time source");
-		xstat(TT.ref_file, &sb);
-		curr_m = sb.st_mtime;
-		curr_a = sb.st_atime;
-
-	// Use time specified on command line.
-	} else if (toys.optflags & OPT_TIME) {
-		struct tm t;
-		time_t curr;
-		char *c;
-
-		curr = time(NULL);
-		if (localtime_r(&curr, &t)
-			|| !(c = strptime(TT.time, "%m%d%H%M", &t))
-			|| *c || -1==(curr_a = curr_m = mktime(&t)))
-		{
-			error_exit("Unknown time %s", TT.time);
-		}
-
-	// use current time
-	} else curr_m = curr_a = time(NULL);
-
-	for (i = 0; (arg = toys.optargs[i]); i++) {
-		struct utimbuf buf;
-		struct stat sb;
-
-		buf.modtime = curr_m;
-		buf.actime = curr_a;
-
-		if (stat(arg, &sb)) {
-			if (!(toys.optflags & OPT_NOCREATE)) {
-				xcreate(arg, O_CREAT, 0644);
-				if (stat(arg, &sb))
-					goto error;
-			}
-		}
-
-		if ((set_a+set_m) == 1) {
-			/* We've been asked to only change one */
-			if (set_a) buf.modtime = sb.st_mtime;
-			else if (set_m) buf.actime = sb.st_atime;
-		}
-
-		if (toys.optflags & OPT_LENGTH)
-			if (truncate(arg, TT.length))
-				goto error;
-		if (utime(arg, &buf))
-error:
-			perror_exit(arg);
-	}
-}
--- a/toys/tty.c	Sat May 21 22:54:21 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/* vi: set sw=4 ts=4:
- * tty.c - print terminal name of stdin
- *
- * Copyright 2007 Charlie Shepherd <masterdriverz@gentoo.org>
- *
- * See http://www.opengroup.org/onlinepubs/009695399/utilities/tty.html
-
-USE_TTY(NEWTOY(tty, "s", TOYFLAG_BIN))
-
-config TTY
-	bool "tty"
-	default y
-	help
-	  Print the filename of the terminal connected to standard input.
-
-	  -s	Don't print anything, only return an exit status.
-*/
-
-#include "toys.h"
-
-void tty_main(void)
-{
-	char *name = ttyname(0);
-	if (!toys.optflags) {
-		if (name) puts(name);
-		else puts("Not a tty");
-	}
-	toys.exitval = !name;
-}