1
0
mirror of https://https.git.savannah.gnu.org/git/gnulib.git synced 2026-09-01 02:34:55 +00:00

Sync from coreutils.

* modules/yesno (Depends-on): Add getline.
* gethrxtime.c, gethrxtime.h, getpass.h, mountlist.h, path-concat.c,
regex.h, strtoll.c, unlocked-io.h, xtime.h:
White space changes only.
* makepath.c (make_path): Port to hosts where leading "//" is special.
* yesno.c: Include getline.h, not ctype.h.
(yesno): Don't remove leading white space; POSIX doesn't allow it.
Use getline to remove arbitrary restriction on response length.
This commit is contained in:
Paul Eggert
2005-05-15 04:45:43 +00:00
parent 6322c57bec
commit 6ef9a07334
14 changed files with 158 additions and 139 deletions
+4
View File
@@ -1,3 +1,7 @@
2005-05-14 Paul Eggert <eggert@cs.ucla.edu>
* modules/yesno (Depends-on): Add getline.
2005-05-13 Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh, README, gnulib-tool, tests/test-base64.c,
+11
View File
@@ -1,3 +1,14 @@
2005-05-14 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils.
* gethrxtime.c, gethrxtime.h, getpass.h, mountlist.h, path-concat.c,
regex.h, strtoll.c, unlocked-io.h, xtime.h:
White space changes only.
* makepath.c (make_path): Port to hosts where leading "//" is special.
* yesno.c: Include getline.h, not ctype.h.
(yesno): Don't remove leading white space; POSIX doesn't allow it.
Use getline to remove arbitrary restriction on response length.
2005-05-13 Bruno Haible <bruno@clisp.org>
* stdint_.h (int64_t, uint64_t, int_least64_t, uint_least64_t,
+1 -1
View File
@@ -58,7 +58,7 @@ gethrxtime (void)
}
# endif
#if HAVE_MICROUPTIME
# if HAVE_MICROUPTIME
{
struct timeval tv;
microuptime (&tv);
+6 -6
View File
@@ -19,19 +19,19 @@
/* Written by Paul Eggert. */
#ifndef GETHRXTIME_H_
#define GETHRXTIME_H_ 1
# define GETHRXTIME_H_ 1
#include "xtime.h"
# include "xtime.h"
/* Get the current time, as a count of the number of nanoseconds since
an arbitrary epoch (e.g., the system boot time). This clock can't
be set, is always increasing, and is nearly linear. */
#if HAVE_ARITHMETIC_HRTIME_T && HAVE_DECL_GETHRTIME
# include <time.h>
# if HAVE_ARITHMETIC_HRTIME_T && HAVE_DECL_GETHRTIME
# include <time.h>
static inline xtime_t gethrxtime (void) { return gethrtime (); }
#else
# else
xtime_t gethrxtime (void);
#endif
# endif
#endif
+4 -4
View File
@@ -17,15 +17,15 @@
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#ifndef GETPASS_H
#define GETPASS_H
# define GETPASS_H
/* Get getpass declaration, if available. */
#include <unistd.h>
# include <unistd.h>
#if defined HAVE_DECL_GETPASS && !HAVE_DECL_GETPASS
# if defined HAVE_DECL_GETPASS && !HAVE_DECL_GETPASS
/* Read a password of arbitrary length from /dev/tty or stdin. */
char *getpass (const char *prompt);
#endif
# endif
#endif /* GETPASS_H */
+10 -4
View File
@@ -1,7 +1,7 @@
/* makepath.c -- Ensure that a directory path exists.
Copyright (C) 1990, 1997, 1998, 1999, 2000, 2002, 2003, 2004 Free
Software Foundation, Inc.
Copyright (C) 1990, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -207,8 +207,14 @@ make_path (const char *argpath,
/* If we've saved the cwd and DIRPATH is an absolute pathname,
we must chdir to `/' in order to enable the chdir optimization.
So if chdir ("/") fails, turn off the optimization. */
if (do_chdir && *dirpath == '/' && chdir ("/") < 0)
do_chdir = false;
if (do_chdir && dirpath[0] == '/')
{
/* POSIX says "//" might be special, so chdir to "//" if the
file name starts with exactly two slashes. */
char const *root = "//" + (dirpath[1] != '/' || dirpath[2] == '/');
if (chdir (root) != 0)
do_chdir = false;
}
slash = dirpath;
+3 -3
View File
@@ -18,10 +18,10 @@
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#ifndef MOUNTLIST_H_
#define MOUNTLIST_H_
# define MOUNTLIST_H_
#include <stdbool.h>
#include <sys/types.h>
# include <stdbool.h>
# include <sys/types.h>
/* A mount table entry. */
struct mount_entry
+2 -2
View File
@@ -89,8 +89,8 @@ path_concat (char const *dir, char const *abase, char **base_in_result)
}
#ifdef TEST_PATH_CONCAT
#include <stdlib.h>
#include <stdio.h>
# include <stdlib.h>
# include <stdio.h>
int
main ()
{
+1 -1
View File
@@ -193,7 +193,7 @@ extern reg_syntax_t re_syntax_options;
& ~(RE_DOT_NOT_NULL | RE_INTERVALS | RE_CONTEXT_INDEP_OPS \
| RE_CONTEXT_INVALID_OPS ))
#define RE_SYNTAX_POSIX_AWK \
#define RE_SYNTAX_POSIX_AWK \
(RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \
| RE_INTERVALS | RE_NO_GNU_OPS)
+1 -1
View File
@@ -16,7 +16,7 @@
with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#define QUAD 1
#define QUAD 1
#include <strtol.c>
+86 -86
View File
@@ -19,7 +19,7 @@
/* Written by Jim Meyering. */
#ifndef UNLOCKED_IO_H
#define UNLOCKED_IO_H 1
# define UNLOCKED_IO_H 1
/* These are wrappers for functions/macros from the GNU C library, and
from other C libraries supporting POSIX's optional thread-safe functions.
@@ -32,106 +32,106 @@
the *_unlocked functions directly. On hosts that lack those
functions, invoke the non-thread-safe versions instead. */
#include <stdio.h>
# include <stdio.h>
#if HAVE_DECL_CLEARERR_UNLOCKED
# undef clearerr
# define clearerr(x) clearerr_unlocked (x)
#else
# define clearerr_unlocked(x) clearerr (x)
#endif
# if HAVE_DECL_CLEARERR_UNLOCKED
# undef clearerr
# define clearerr(x) clearerr_unlocked (x)
# else
# define clearerr_unlocked(x) clearerr (x)
# endif
#if HAVE_DECL_FEOF_UNLOCKED
# undef feof
# define feof(x) feof_unlocked (x)
#else
# define feof_unlocked(x) feof (x)
#endif
# if HAVE_DECL_FEOF_UNLOCKED
# undef feof
# define feof(x) feof_unlocked (x)
# else
# define feof_unlocked(x) feof (x)
# endif
#if HAVE_DECL_FERROR_UNLOCKED
# undef ferror
# define ferror(x) ferror_unlocked (x)
#else
# define ferror_unlocked(x) ferror (x)
#endif
# if HAVE_DECL_FERROR_UNLOCKED
# undef ferror
# define ferror(x) ferror_unlocked (x)
# else
# define ferror_unlocked(x) ferror (x)
# endif
#if HAVE_DECL_FFLUSH_UNLOCKED
# undef fflush
# define fflush(x) fflush_unlocked (x)
#else
# define fflush_unlocked(x) fflush (x)
#endif
# if HAVE_DECL_FFLUSH_UNLOCKED
# undef fflush
# define fflush(x) fflush_unlocked (x)
# else
# define fflush_unlocked(x) fflush (x)
# endif
#if HAVE_DECL_FGETS_UNLOCKED
# undef fgets
# define fgets(x,y,z) fgets_unlocked (x,y,z)
#else
# define fgets_unlocked(x,y,z) fgets (x,y,z)
#endif
# if HAVE_DECL_FGETS_UNLOCKED
# undef fgets
# define fgets(x,y,z) fgets_unlocked (x,y,z)
# else
# define fgets_unlocked(x,y,z) fgets (x,y,z)
# endif
#if HAVE_DECL_FPUTC_UNLOCKED
# undef fputc
# define fputc(x,y) fputc_unlocked (x,y)
#else
# define fputc_unlocked(x,y) fputc (x,y)
#endif
# if HAVE_DECL_FPUTC_UNLOCKED
# undef fputc
# define fputc(x,y) fputc_unlocked (x,y)
# else
# define fputc_unlocked(x,y) fputc (x,y)
# endif
#if HAVE_DECL_FPUTS_UNLOCKED
# undef fputs
# define fputs(x,y) fputs_unlocked (x,y)
#else
# define fputs_unlocked(x,y) fputs (x,y)
#endif
# if HAVE_DECL_FPUTS_UNLOCKED
# undef fputs
# define fputs(x,y) fputs_unlocked (x,y)
# else
# define fputs_unlocked(x,y) fputs (x,y)
# endif
#if HAVE_DECL_FREAD_UNLOCKED
# undef fread
# define fread(w,x,y,z) fread_unlocked (w,x,y,z)
#else
# define fread_unlocked(w,x,y,z) fread (w,x,y,z)
#endif
# if HAVE_DECL_FREAD_UNLOCKED
# undef fread
# define fread(w,x,y,z) fread_unlocked (w,x,y,z)
# else
# define fread_unlocked(w,x,y,z) fread (w,x,y,z)
# endif
#if HAVE_DECL_FWRITE_UNLOCKED
# undef fwrite
# define fwrite(w,x,y,z) fwrite_unlocked (w,x,y,z)
#else
# define fwrite_unlocked(w,x,y,z) fwrite (w,x,y,z)
#endif
# if HAVE_DECL_FWRITE_UNLOCKED
# undef fwrite
# define fwrite(w,x,y,z) fwrite_unlocked (w,x,y,z)
# else
# define fwrite_unlocked(w,x,y,z) fwrite (w,x,y,z)
# endif
#if HAVE_DECL_GETC_UNLOCKED
# undef getc
# define getc(x) getc_unlocked (x)
#else
# define getc_unlocked(x) getc (x)
#endif
# if HAVE_DECL_GETC_UNLOCKED
# undef getc
# define getc(x) getc_unlocked (x)
# else
# define getc_unlocked(x) getc (x)
# endif
#if HAVE_DECL_GETCHAR_UNLOCKED
# undef getchar
# define getchar() getchar_unlocked ()
#else
# define getchar_unlocked() getchar ()
#endif
# if HAVE_DECL_GETCHAR_UNLOCKED
# undef getchar
# define getchar() getchar_unlocked ()
# else
# define getchar_unlocked() getchar ()
# endif
#if HAVE_DECL_PUTC_UNLOCKED
# undef putc
# define putc(x,y) putc_unlocked (x,y)
#else
# define putc_unlocked(x,y) putc (x,y)
#endif
# if HAVE_DECL_PUTC_UNLOCKED
# undef putc
# define putc(x,y) putc_unlocked (x,y)
# else
# define putc_unlocked(x,y) putc (x,y)
# endif
#if HAVE_DECL_PUTCHAR_UNLOCKED
# undef putchar
# define putchar(x) putchar_unlocked (x)
#else
# define putchar_unlocked(x) putchar (x)
#endif
# if HAVE_DECL_PUTCHAR_UNLOCKED
# undef putchar
# define putchar(x) putchar_unlocked (x)
# else
# define putchar_unlocked(x) putchar (x)
# endif
#undef flockfile
#define flockfile(x) ((void) 0)
# undef flockfile
# define flockfile(x) ((void) 0)
#undef ftrylockfile
#define ftrylockfile(x) 0
# undef ftrylockfile
# define ftrylockfile(x) 0
#undef funlockfile
#define funlockfile(x) ((void) 0)
# undef funlockfile
# define funlockfile(x) ((void) 0)
#endif /* UNLOCKED_IO_H */
+10 -10
View File
@@ -19,24 +19,24 @@
/* Written by Paul Eggert. */
#ifndef XTIME_H_
#define XTIME_H_ 1
# define XTIME_H_ 1
/* xtime_t is a signed type used for time stamps. It is an integer
type that is a count of nanoseconds -- except for obsolescent hosts
without sufficiently-wide integers, where it is a count of
seconds. */
#if HAVE_LONG_LONG
# if HAVE_LONG_LONG
typedef long long int xtime_t;
# define XTIME_PRECISION 1000000000LL
#else
# include <limits.h>
typedef long int xtime_t;
# if LONG_MAX >> 31 >> 31 == 0
# define XTIME_PRECISION 1L
# define XTIME_PRECISION 1000000000LL
# else
# define XTIME_PRECISION 1000000000L
# include <limits.h>
typedef long int xtime_t;
# if LONG_MAX >> 31 >> 31 == 0
# define XTIME_PRECISION 1L
# else
# define XTIME_PRECISION 1000000000L
# endif
# endif
#endif
/* Return an extended time value that contains S seconds and NS
nanoseconds, without any overflow checking. */
+18 -21
View File
@@ -1,5 +1,7 @@
/* yesno.c -- read a yes/no response from stdin
Copyright (C) 1990, 1998, 2001, 2003, 2004 Free Software Foundation, Inc.
Copyright (C) 1990, 1998, 2001, 2003, 2004, 2005 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -21,36 +23,31 @@
#include "yesno.h"
#include <ctype.h>
#include <stdlib.h>
#include <stdio.h>
#if USE_UNLOCKED_IO
# include "unlocked-io.h"
#endif
#include "getline.h"
/* Read one line from standard input
and return nonzero if that line begins with y or Y,
otherwise return 0. */
/* Return true if we read an affirmative line from standard input. */
extern int rpmatch (char const *response);
bool
yesno (void)
{
/* We make some assumptions here:
a) leading white space in the response are not vital
b) the first 128 characters of the answer are enough (the rest can
be ignored)
I cannot think for a situation where this is not ok. --drepper@gnu */
char buf[128];
int len = 0;
int c;
char *response = NULL;
size_t response_size = 0;
ssize_t response_len = getline (&response, &response_size, stdin);
bool yes;
while ((c = getchar ()) != EOF && c != '\n')
if ((len > 0 && len < 127) || (len == 0 && !isspace (c)))
buf[len++] = c;
buf[len] = '\0';
if (response_len <= 0)
yes = false;
else
{
response[response_len - 1] = '\0';
yes = (0 < rpmatch (response));
}
return rpmatch (buf) == 1;
free (response);
return yes;
}
+1
View File
@@ -8,6 +8,7 @@ lib/yesno.h
m4/yesno.m4
Depends-on:
getline
rpmatch
stdbool