From 05e03fc6560278ba81f78f397a00319e9df5a5ca Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 21 Aug 2006 07:30:45 +0000 Subject: Add a bootstrap procedure, so that the CVS version contains fewer files and we bootstrap the rest from gnulib, gettext, etc. * README-cvs: New file. * bootstrap: New file. * bootstrap.conf: New file. * .x-sc_trailing_blank: Remove config-log, .gdb-history. Add .po. * configure.ac (AC_PREREQ): Move here from m4/*.m4, for benefit of gnulib-tool. (gl_DEFAULT_POSIX2_VERSION, gl_USE_SYSTEM_EXTENSIONS, gl_PERL): (gl_IGNORE_UNUSED_LIBRARIES): Remove; now done by gnulib. (gl_EARLY): Add. (gl_MACROS): Call just after gl_EARLY, just for clarity. * src/c99-to-c98.diff: Remove patch to ls.c; no longer needed. * src/kill.c (strtoimax): Remove decl. * src/ls.c: Include "wcwidth.h" instead of rolling it ourselves. * src/wc.c: Likewise. * src/ls.c (sort_files): Rewrite to avoid need for C99-style declaration, so that we don't need to patch this file. * src/printf.c (strtoimax, strtoumax): Remove decls. * src/su.c: Include getpass.h. (getpass): remove. * src/system.h: Include mempcpy.h, stpcpy.h, strpbrk.h. Include inttypes.h unconditionally; remove decls it handles. * lib/Makefile.am: include gnulib.mk, so that we can remove most of this file. (AM_CPPFLAGS): Don't mention -I$(srcdir), since that's now done for us. (noinst_LIBRARIES, LDDADD, DEFS): Remove. (libcoreutils_a_SOURCES): Trim down greatly, just to the files that aren't in gnulib. Remove defns gnulib does for us. * m4/check-decl.m4 (gl_CHECK_DECLS): Don't include stdio.h, string.h, stdlib.h, unistd.h, sys/time.h, time.h. Use AC_CHECK_DECLS_ONCE for free, getenv, geteuid, getlogin, getuid, lseek, malloc, memchr, realloc. Don't check for getutent, memrchr, nanosleep, stpcpy, strndup, strnlen, strstr, strtoul, strtoull. (_gl_DECL_HEADERS): Remove; all uses removed. * m4/jm-macros.m4 (gl_MACROS): Move AC_PREREQ into configure.ac for the benefit of gnulib-tool. Call gl_INIT. Do not call or require macros that gnulib will handle for us. Don't check for fchmod, hasmntopt, isascii, lchown, listmntent, mempcpy, realpath, wcrtomb, tzset. (gl_CHECK_ALL_HEADERS): Don't check for sys/statvfs.h, sys/vfs.h, sys/mount.h. (gl_CHECK_ALL_TYPES): Require AC_TYPE_UNSIGNED_LONG_LONG_INT. Don't check for struct stat.st_blksize. Don't require AC_STRUCT_ST_DM_MODE, gt_TYPE_SSIZE_T, gl_AC_TYPE_UINT32_T, gl_AC_TYPE_UINTMAX_T, gl_AC_TYPE_UINTPTR_T, gl_AC_TYPE_UNSIGNED_LONG_LONG. * m4/prereq.m4 (gl_PREREQ): Require gl_FUNC_XFTS, gl_ROOT_DEV_INO. Don't require macros that gnulib does for us. * m4/stat-prog.m4 (cu_PREREQ_STAT_PROG): Don't check for sys/sysmacros.h. Don't check for statvfs. Use AC_CHECK_HEADERS_ONCE for netinet/in.h, nfs/nfs_clnt.h, nfs/vfs.h. Don't require gl_AC_TYPE_LONG_LONG, gt_HEADER_INTTYPES_H. --- src/c99-to-c89.diff | 23 ---------- src/kill.c | 4 -- src/ls.c | 34 ++------------- src/printf.c | 7 ---- src/su.c | 2 +- src/system.h | 119 ++-------------------------------------------------- src/wc.c | 32 ++------------ 7 files changed, 12 insertions(+), 209 deletions(-) (limited to 'src') diff --git a/src/c99-to-c89.diff b/src/c99-to-c89.diff index 90b284818..22723b7b4 100644 --- a/src/c99-to-c89.diff +++ b/src/c99-to-c89.diff @@ -22,29 +22,6 @@ diff -u -p -r1.203 copy.c } } -Index: src/ls.c -=================================================================== -RCS file: /fetish/cu/src/ls.c,v -retrieving revision 1.435 -diff -u -p -r1.435 ls.c ---- src/ls.c 9 Aug 2006 09:45:17 -0000 1.435 -+++ src/ls.c 17 Aug 2006 09:18:52 -0000 -@@ -3139,13 +3139,14 @@ sort_files (void) - use_strcmp = true; - assert (sort_type != sort_version); - } -- -+ { - /* When sort_type == sort_time, use time_type as subindex. */ - int timeoffset = sort_type == sort_time ? time_type : 0; - - qsort (files, files_index, sizeof *files, - sort_functions[sort_type + timeoffset][use_strcmp][sort_reverse] - [directories_first]); -+ } - } - - /* List all the files now in the table. */ Index: src/remove.c =================================================================== RCS file: /fetish/cu/src/remove.c,v diff --git a/src/kill.c b/src/kill.c index ab5ae3c96..c59025fa0 100644 --- a/src/kill.c +++ b/src/kill.c @@ -42,10 +42,6 @@ #define AUTHORS "Paul Eggert" -#if ! (HAVE_DECL_STRTOIMAX || defined strtoimax) -intmax_t strtoimax (); -#endif - #if ! (HAVE_DECL_STRSIGNAL || defined strsignal) # if ! (HAVE_DECL_SYS_SIGLIST || defined sys_siglist) # if HAVE_DECL__SYS_SIGLIST || defined _sys_siglist diff --git a/src/ls.c b/src/ls.c index 29cc25369..88ddb98e8 100644 --- a/src/ls.c +++ b/src/ls.c @@ -73,34 +73,6 @@ # endif #endif -/* Get mbstate_t, mbrtowc(), mbsinit(), wcwidth(). */ -#if HAVE_WCHAR_H -# include -#endif - -/* Get iswprint(). */ -#if HAVE_WCTYPE_H -# include -#endif -#if !defined iswprint && !HAVE_ISWPRINT -# define iswprint(wc) 1 -#endif - -#ifndef HAVE_DECL_WCWIDTH -"this configure-time declaration test was not run" -#endif -#if !HAVE_DECL_WCWIDTH -int wcwidth (); -#endif - -/* If wcwidth() doesn't exist, assume all printable characters have - width 1. */ -#ifndef wcwidth -# if !HAVE_WCWIDTH -# define wcwidth(wc) ((wc) == 0 ? 0 : iswprint (wc) ? 1 : -1) -# endif -#endif - #include "system.h" #include @@ -126,6 +98,7 @@ int wcwidth (); #include "stat-time.h" #include "strftime.h" #include "strverscmp.h" +#include "wcwidth.h" #include "xstrtol.h" #include "xreadlink.h" @@ -3141,10 +3114,9 @@ sort_files (void) } /* When sort_type == sort_time, use time_type as subindex. */ - int timeoffset = sort_type == sort_time ? time_type : 0; - qsort (files, files_index, sizeof *files, - sort_functions[sort_type + timeoffset][use_strcmp][sort_reverse] + sort_functions[sort_type + (sort_type == sort_time ? time_type : 0)] + [use_strcmp][sort_reverse] [directories_first]); } diff --git a/src/printf.c b/src/printf.c index 2f29bc080..ddced5af4 100644 --- a/src/printf.c +++ b/src/printf.c @@ -58,13 +58,6 @@ #include "quote.h" #include "unicodeio.h" -#if ! (HAVE_DECL_STRTOIMAX || defined strtoimax) -intmax_t strtoimax (); -#endif -#if ! (HAVE_DECL_STRTOUMAX || defined strtoumax) -uintmax_t strtoumax (); -#endif - /* The official name of this program (e.g., no `g' prefix). */ #define PROGRAM_NAME "printf" diff --git a/src/su.c b/src/su.c index 3d00cf7b7..ddd267755 100644 --- a/src/su.c +++ b/src/su.c @@ -61,6 +61,7 @@ #include "system.h" #include "dirname.h" +#include "getpass.h" #undef getusershell @@ -120,7 +121,6 @@ #define DEFAULT_USER "root" char *crypt (); -char *getpass (); char *getusershell (); void endusershell (); void setusershell (); diff --git a/src/system.h b/src/system.h index b9c8ee2f9..ff1161943 100644 --- a/src/system.h +++ b/src/system.h @@ -96,7 +96,10 @@ you must include before including this file memcpy otherwise. */ #include +#include "mempcpy.h" #include "memrchr.h" +#include "stpcpy.h" +#include "strpbrk.h" #include @@ -319,35 +322,9 @@ enum #include "timespec.h" -#if HAVE_INTTYPES_H -# include -#endif +#include #include -#if ULONG_MAX_LT_ULLONG_MAX -# define LONGEST_MODIFIER "ll" -#else -# define LONGEST_MODIFIER "l" -#endif -#if PRI_MACROS_BROKEN -# undef PRIdMAX -# undef PRIoMAX -# undef PRIuMAX -# undef PRIxMAX -#endif -#ifndef PRIdMAX -# define PRIdMAX LONGEST_MODIFIER "d" -#endif -#ifndef PRIoMAX -# define PRIoMAX LONGEST_MODIFIER "o" -#endif -#ifndef PRIuMAX -# define PRIuMAX LONGEST_MODIFIER "u" -#endif -#ifndef PRIxMAX -# define PRIxMAX LONGEST_MODIFIER "x" -#endif - #include #if ! (defined isblank || HAVE_DECL_ISBLANK) @@ -412,20 +389,6 @@ char *memchr (); char *realloc (); #endif -#if !HAVE_DECL_STPCPY -# ifndef stpcpy -char *stpcpy (); -# endif -#endif - -#if !HAVE_DECL_STRNDUP -char *strndup (); -#endif - -#if !HAVE_DECL_STRSTR -char *strstr (); -#endif - #if !HAVE_DECL_GETENV char *getenv (); #endif @@ -434,11 +397,6 @@ char *getenv (); off_t lseek (); #endif -/* This is needed on some AIX systems. */ -#if !HAVE_DECL_STRTOUL -unsigned long strtoul (); -#endif - #if !HAVE_DECL_GETLOGIN char *getlogin (); #endif @@ -480,11 +438,6 @@ uid_t getuid (); #define X2REALLOC(P, PN) ((void) verify_true (sizeof *(P) == 1), \ x2realloc (P, PN)) -#if ! defined HAVE_MEMPCPY && ! defined mempcpy -/* Be CAREFUL that there are no side effects in N. */ -# define mempcpy(D, S, N) ((void *) ((char *) memcpy (D, S, N) + (N))) -#endif - /* Include automatically-generated macros for unlocked I/O. */ #include "unlocked-io.h" #include "same-inode.h" @@ -567,74 +520,10 @@ enum #include "intprops.h" -#ifndef CHAR_MIN -# define CHAR_MIN TYPE_MINIMUM (char) -#endif - -#ifndef CHAR_MAX -# define CHAR_MAX TYPE_MAXIMUM (char) -#endif - -#ifndef SCHAR_MIN -# define SCHAR_MIN (-1 - SCHAR_MAX) -#endif - -#ifndef SCHAR_MAX -# define SCHAR_MAX (CHAR_MAX == UCHAR_MAX ? CHAR_MAX / 2 : CHAR_MAX) -#endif - -#ifndef UCHAR_MAX -# define UCHAR_MAX TYPE_MAXIMUM (unsigned char) -#endif - -#ifndef SHRT_MIN -# define SHRT_MIN TYPE_MINIMUM (short int) -#endif - -#ifndef SHRT_MAX -# define SHRT_MAX TYPE_MAXIMUM (short int) -#endif - -#ifndef INT_MAX -# define INT_MAX TYPE_MAXIMUM (int) -#endif - -#ifndef INT_MIN -# define INT_MIN TYPE_MINIMUM (int) -#endif - -#ifndef INTMAX_MAX -# define INTMAX_MAX TYPE_MAXIMUM (intmax_t) -#endif - -#ifndef INTMAX_MIN -# define INTMAX_MIN TYPE_MINIMUM (intmax_t) -#endif - -#ifndef UINT_MAX -# define UINT_MAX TYPE_MAXIMUM (unsigned int) -#endif - -#ifndef LONG_MAX -# define LONG_MAX TYPE_MAXIMUM (long int) -#endif - -#ifndef ULONG_MAX -# define ULONG_MAX TYPE_MAXIMUM (unsigned long int) -#endif - -#ifndef SIZE_MAX -# define SIZE_MAX TYPE_MAXIMUM (size_t) -#endif - #ifndef SSIZE_MAX # define SSIZE_MAX TYPE_MAXIMUM (ssize_t) #endif -#ifndef UINTMAX_MAX -# define UINTMAX_MAX TYPE_MAXIMUM (uintmax_t) -#endif - #ifndef OFF_T_MIN # define OFF_T_MIN TYPE_MINIMUM (off_t) #endif diff --git a/src/wc.c b/src/wc.c index f533b7ca6..e21fb7f05 100644 --- a/src/wc.c +++ b/src/wc.c @@ -24,41 +24,17 @@ #include #include -/* Get mbstate_t, mbrtowc(), wcwidth(). */ -#if HAVE_WCHAR_H -# include -#endif - -/* Get iswprint(), iswspace(). */ -#if HAVE_WCTYPE_H -# include -#endif -#if !defined iswprint && !HAVE_ISWPRINT -# define iswprint(wc) 1 -#endif -#if !defined iswspace && !HAVE_ISWSPACE -# define iswspace(wc) \ - ((wc) == to_uchar (wc) && isspace (to_uchar (wc))) -#endif - #include "system.h" #include "error.h" #include "inttostr.h" #include "quote.h" #include "readtokens0.h" #include "safe-read.h" +#include "wcwidth.h" -#ifndef HAVE_DECL_WCWIDTH -"this configure-time declaration test was not run" -#endif -#if !HAVE_DECL_WCWIDTH -extern int wcwidth (); -#endif - -/* If wcwidth() doesn't exist, assume all printable characters have - width 1. */ -#if !defined wcwidth && !HAVE_WCWIDTH -# define wcwidth(wc) ((wc) == 0 ? 0 : iswprint (wc) ? 1 : -1) +#if !defined iswspace && !HAVE_ISWSPACE +# define iswspace(wc) \ + ((wc) == to_uchar (wc) && isspace (to_uchar (wc))) #endif /* The official name of this program (e.g., no `g' prefix). */ -- cgit v1.2.3-54-g00ecf