mirror of
https://git.savannah.gnu.org/git/coreutils.git
synced 2025-09-10 07:59:52 +02:00
Compare commits
69 Commits
FILEUTILS-
...
FILEUTILS-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3ac192dc18 | ||
|
|
39d746aace | ||
|
|
a4aa31ab26 | ||
|
|
fc27d7356d | ||
|
|
427694451d | ||
|
|
81655756c2 | ||
|
|
2cd2cfc95c | ||
|
|
dd55ac2967 | ||
|
|
0a8f8a7f96 | ||
|
|
8fdb4073cb | ||
|
|
6a3804bceb | ||
|
|
7a23da6e17 | ||
|
|
403470bdfb | ||
|
|
565c193a23 | ||
|
|
cd7e157b45 | ||
|
|
bac81b8dd0 | ||
|
|
6e92f27548 | ||
|
|
b3324ca196 | ||
|
|
c90aa4af6c | ||
|
|
2dcd72c77e | ||
|
|
4aba36bd9a | ||
|
|
2ee35792a0 | ||
|
|
782e6319e5 | ||
|
|
95bbe7a4e1 | ||
|
|
5631658518 | ||
|
|
64e75882f4 | ||
|
|
151c87c3df | ||
|
|
0e12cbe0e2 | ||
|
|
6165d7114f | ||
|
|
2edf3e95db | ||
|
|
b2a6e3f614 | ||
|
|
be1e26b2e5 | ||
|
|
185ee08979 | ||
|
|
020235e167 | ||
|
|
445485d9b8 | ||
|
|
0fd7aaf38c | ||
|
|
48a83af35c | ||
|
|
bb73f9b20e | ||
|
|
611fadd9e8 | ||
|
|
f95b33a519 | ||
|
|
73771cb380 | ||
|
|
48da137f84 | ||
|
|
4e378387d0 | ||
|
|
830edd4985 | ||
|
|
770c39a710 | ||
|
|
4e2bc789ab | ||
|
|
da0732da37 | ||
|
|
b3edfeaeee | ||
|
|
e1d09fbef3 | ||
|
|
4d73de7228 | ||
|
|
97a165c61f | ||
|
|
57ebb8d808 | ||
|
|
0aa5a0d85e | ||
|
|
c49c23e608 | ||
|
|
1a6f58ae67 | ||
|
|
49a11aa4d4 | ||
|
|
ebecb3f230 | ||
|
|
be34aaaa35 | ||
|
|
939977073e | ||
|
|
17d7e0206d | ||
|
|
c968981077 | ||
|
|
23357a490e | ||
|
|
c08ca675ac | ||
|
|
25353ae5a7 | ||
|
|
0e4c958fb8 | ||
|
|
8b6603f085 | ||
|
|
a3dcaf6a83 | ||
|
|
f00f8f6a9c | ||
|
|
f472159d99 |
@@ -30,6 +30,9 @@ po-check:
|
||||
diff -u $@-1 $@-2
|
||||
rm -f $@-1 $@-2
|
||||
|
||||
# Do not save the original name or timestamp in the .tar.gz file.
|
||||
GZIP_ENV = --no-name
|
||||
|
||||
# Tag before making distribution. Also, don't make a distribution if
|
||||
# checks fail. Also, make sure the NEWS file is up-to-date.
|
||||
# FIXME: use dist-hook/my-dist like distcheck-hook/my-distcheck.
|
||||
@@ -125,7 +128,7 @@ announcement: NEWS ChangeLog $(distdir).tar.gz
|
||||
| grep -v '^\['; \
|
||||
echo; \
|
||||
echo ChangeLog entries:; \
|
||||
find . -name ChangeLog \
|
||||
find . -name ChangeLog -maxdepth 2 \
|
||||
| xargs cvs diff -up -r$(prev-cvs-tag) -rHEAD \
|
||||
| sed -n 's/^+//p' \
|
||||
| perl -ne 'm!^\+\+ (\./)?! or print,next;' \
|
||||
|
||||
5
THANKS
5
THANKS
@@ -150,8 +150,9 @@ John Salmon johns@mullet.anu.edu.au
|
||||
John Summerfield summer@OS2.ami.com.au
|
||||
Joost van Baal joostvb@xs4all.nl
|
||||
Joseph S. Myers jsm28@cam.ac.uk
|
||||
jvogel jvogel@linkny.com
|
||||
Jungshik Shin jshin@pantheon.yale.edu
|
||||
Jürgen Fluk louis@dachau.marco.de
|
||||
jvogel jvogel@linkny.com
|
||||
Kai-Uwe Rommel rommel@informatik.tu-muenchen.de
|
||||
Kalle Olavi Niemitalo tosi@stekt.oulu.fi
|
||||
Kamal Paul Nigam Kamal_Paul_Nigam@gs35.sp.cs.cmu.edu
|
||||
@@ -279,10 +280,12 @@ Vesselin Atanasov vesselin@bgnet.bg
|
||||
Vin Shelton acs@alumni.princeton.edu
|
||||
Volker Borchert bt@teknon.de
|
||||
Wayne Stewart wstewa@atl.com
|
||||
Wenjun Zheng zwj@yahoo.com
|
||||
Wichert Akkerman wichert@cistron.nl
|
||||
Will Edgington wedgingt@acm.org
|
||||
William Bader william@nscs.fast.net
|
||||
William Dowling will@franklin.com
|
||||
William Lewis wiml@omnigroup.com
|
||||
Wolfram Kleff kleff@cs.uni-bonn.de
|
||||
Won-kyu Park wkpark@chem.skku.ac.kr
|
||||
Zvi Har'El rl@math.technion.ac.il
|
||||
|
||||
@@ -55,7 +55,7 @@ lifetime of the universe.
|
||||
* Day of week items:: Monday and others.
|
||||
* Relative items in date strings:: next tuesday, 2 years ago.
|
||||
* Pure numbers in date strings:: 19931219, 1440.
|
||||
* Authors of getdate:: Bellovin, Salz, Berets, et al.
|
||||
* Authors of getdate:: Bellovin, Eggert, Salz, Berets, et al.
|
||||
@end menu
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
% Load plain if necessary, i.e., if running under initex.
|
||||
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
|
||||
%
|
||||
\def\texinfoversion{2000-10-18.06}
|
||||
\def\texinfoversion{2000-10-27.17}
|
||||
%
|
||||
% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
|
||||
% Free Software Foundation, Inc.
|
||||
@@ -2602,42 +2602,48 @@ width0pt\relax} \fi
|
||||
}
|
||||
|
||||
% @defindex foo == \newindex{foo}
|
||||
|
||||
%
|
||||
\def\defindex{\parsearg\newindex}
|
||||
|
||||
% Define @defcodeindex, like @defindex except put all entries in @code.
|
||||
|
||||
%
|
||||
\def\defcodeindex{\parsearg\newcodeindex}
|
||||
%
|
||||
\def\newcodeindex#1{%
|
||||
\iflinks
|
||||
\expandafter\newwrite \csname#1indfile\endcsname
|
||||
\openout \csname#1indfile\endcsname \jobname.#1
|
||||
\fi
|
||||
\expandafter\xdef\csname#1index\endcsname{%
|
||||
\noexpand\docodeindex{#1}}
|
||||
\noexpand\docodeindex{#1}}%
|
||||
}
|
||||
|
||||
\def\defcodeindex{\parsearg\newcodeindex}
|
||||
|
||||
% @synindex foo bar makes index foo feed into index bar.
|
||||
% Do this instead of @defindex foo if you don't want it as a separate index.
|
||||
% The \closeout helps reduce unnecessary open files; the limit on the
|
||||
% Acorn RISC OS is a mere 16 files.
|
||||
\def\synindex#1 #2 {%
|
||||
\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
|
||||
\expandafter\closeout\csname#1indfile\endcsname
|
||||
\expandafter\let\csname#1indfile\endcsname=\synindexfoo
|
||||
\expandafter\xdef\csname#1index\endcsname{% define \xxxindex
|
||||
\noexpand\doindex{#2}}%
|
||||
}
|
||||
|
||||
%
|
||||
% @syncodeindex foo bar similar, but put all entries made for index foo
|
||||
% inside @code.
|
||||
\def\syncodeindex#1 #2 {%
|
||||
\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
|
||||
\expandafter\closeout\csname#1indfile\endcsname
|
||||
\expandafter\let\csname#1indfile\endcsname=\synindexfoo
|
||||
\expandafter\xdef\csname#1index\endcsname{% define \xxxindex
|
||||
\noexpand\docodeindex{#2}}%
|
||||
%
|
||||
\def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}}
|
||||
\def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}}
|
||||
|
||||
% #1 is \doindex or \docodeindex, #2 the index getting redefined (foo),
|
||||
% #3 the target index (bar).
|
||||
\def\dosynindex#1#2#3{%
|
||||
% Only do \closeout if we haven't already done it, else we'll end up
|
||||
% closing the target index.
|
||||
\expandafter \ifx\csname donesynindex#2\endcsname \undefined
|
||||
% The \closeout helps reduce unnecessary open files; the limit on the
|
||||
% Acorn RISC OS is a mere 16 files.
|
||||
\expandafter\closeout\csname#2indfile\endcsname
|
||||
\expandafter\let\csname\donesynindex#2\endcsname = 1
|
||||
\fi
|
||||
% redefine \fooindfile:
|
||||
\expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname
|
||||
\expandafter\let\csname#2indfile\endcsname=\temp
|
||||
% redefine \fooindex:
|
||||
\expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}%
|
||||
}
|
||||
|
||||
% Define \doindex, the driver for all \fooindex macros.
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
2000-11-10 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* obstack.h: Update from GNU libc.
|
||||
* obstack.c: Likewise.
|
||||
|
||||
2000-11-03 Bruno Haible <haible@clisp.cons.org>
|
||||
|
||||
* unicodeio.c: Include wchar.h.
|
||||
(wcrtomb): Provide fallback definition for broken platforms.
|
||||
(print_unicode_char): New alternative definition for platforms where
|
||||
wchar_t is Unicode.
|
||||
|
||||
2000-11-06 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* getusershell.c (setusershell): Use rewind rather than
|
||||
fseek/fseeko, to avoid configuration hassles with fseeko.
|
||||
Don't bother opening SHELLS_FILE if shellstream is NULL;
|
||||
it's not necessary.
|
||||
|
||||
2000-11-05 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* makepath.h (make_dir): Declare.
|
||||
@@ -11,22 +30,22 @@
|
||||
|
||||
2000-11-02 Vesselin Atanasov <vesselin@bgnet.bg>
|
||||
|
||||
* lib/fnmatch.c: Do not comment out all the code if we are using
|
||||
* fnmatch.c: Do not comment out all the code if we are using
|
||||
the GNU C library, because in some cases we are replacing buggy
|
||||
code in the GNU C library itself.
|
||||
|
||||
2000-10-30 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* lib/error.h, lib/getline.h, lib/modechange.h:
|
||||
* error.h, getline.h, modechange.h:
|
||||
Remove "2000" from Copyright line, as the file hasn't been
|
||||
changed this year other than in the copyright notice.
|
||||
|
||||
* lib/xalloc.h: Add "2000" to Copyright line, as this file
|
||||
* xalloc.h: Add "2000" to Copyright line, as this file
|
||||
was changed this year.
|
||||
|
||||
2000-10-30 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* lib/fnmatch.c (FOLD): Do not assume that characters are unsigned.
|
||||
* fnmatch.c (FOLD): Do not assume that characters are unsigned.
|
||||
(fnmatch): Fix some FNM_FILE_NAME and FNM_LEADING_DIR bugs,
|
||||
e.g. fnmatch("d*/*1", "d/s/1", FNM_FILE_NAME) incorrectly yielded zero.
|
||||
|
||||
@@ -55,6 +74,7 @@
|
||||
* memcmp.c: Likewise.
|
||||
|
||||
* getusershell.c (setusershell) [HAVE_FSEEKO]: Use fseeko.
|
||||
Avoid using fseek, when possible -- it's broken by design.
|
||||
Patch by Ulrich Drepper.
|
||||
|
||||
2000-10-26 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
@@ -100,16 +100,8 @@ void
|
||||
setusershell ()
|
||||
{
|
||||
default_index = 0;
|
||||
if (shellstream == NULL)
|
||||
shellstream = fopen (SHELLS_FILE, "r");
|
||||
else
|
||||
{
|
||||
#ifdef HAVE_FSEEKO
|
||||
fseeko (shellstream, 0, 0);
|
||||
#else
|
||||
fseek (shellstream, 0L, 0);
|
||||
#endif
|
||||
}
|
||||
if (shellstream)
|
||||
rewind (shellstream);
|
||||
}
|
||||
|
||||
/* Close the shells file. */
|
||||
|
||||
@@ -524,20 +524,20 @@ int (obstack_make_room) (obstack, length)
|
||||
return obstack_make_room (obstack, length);
|
||||
}
|
||||
|
||||
void (obstack_grow) (obstack, pointer, length)
|
||||
void (obstack_grow) (obstack, data, length)
|
||||
struct obstack *obstack;
|
||||
POINTER pointer;
|
||||
const POINTER data;
|
||||
int length;
|
||||
{
|
||||
obstack_grow (obstack, pointer, length);
|
||||
obstack_grow (obstack, data, length);
|
||||
}
|
||||
|
||||
void (obstack_grow0) (obstack, pointer, length)
|
||||
void (obstack_grow0) (obstack, data, length)
|
||||
struct obstack *obstack;
|
||||
POINTER pointer;
|
||||
const POINTER data;
|
||||
int length;
|
||||
{
|
||||
obstack_grow0 (obstack, pointer, length);
|
||||
obstack_grow0 (obstack, data, length);
|
||||
}
|
||||
|
||||
void (obstack_1grow) (obstack, character)
|
||||
@@ -581,20 +581,20 @@ POINTER (obstack_alloc) (obstack, length)
|
||||
return obstack_alloc (obstack, length);
|
||||
}
|
||||
|
||||
POINTER (obstack_copy) (obstack, pointer, length)
|
||||
POINTER (obstack_copy) (obstack, address, length)
|
||||
struct obstack *obstack;
|
||||
POINTER pointer;
|
||||
const POINTER address;
|
||||
int length;
|
||||
{
|
||||
return obstack_copy (obstack, pointer, length);
|
||||
return obstack_copy (obstack, address, length);
|
||||
}
|
||||
|
||||
POINTER (obstack_copy0) (obstack, pointer, length)
|
||||
POINTER (obstack_copy0) (obstack, address, length)
|
||||
struct obstack *obstack;
|
||||
POINTER pointer;
|
||||
const POINTER address;
|
||||
int length;
|
||||
{
|
||||
return obstack_copy0 (obstack, pointer, length);
|
||||
return obstack_copy0 (obstack, address, length);
|
||||
}
|
||||
|
||||
# endif /* __STDC__ */
|
||||
|
||||
@@ -13,11 +13,11 @@
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
USA. */
|
||||
|
||||
@@ -219,18 +219,18 @@ void obstack_init (struct obstack *obstack);
|
||||
|
||||
void * obstack_alloc (struct obstack *obstack, int size);
|
||||
|
||||
void * obstack_copy (struct obstack *obstack, void *address, int size);
|
||||
void * obstack_copy0 (struct obstack *obstack, void *address, int size);
|
||||
void * obstack_copy (struct obstack *obstack, const void *address, int size);
|
||||
void * obstack_copy0 (struct obstack *obstack, const void *address, int size);
|
||||
|
||||
void obstack_free (struct obstack *obstack, void *block);
|
||||
|
||||
void obstack_blank (struct obstack *obstack, int size);
|
||||
|
||||
void obstack_grow (struct obstack *obstack, void *data, int size);
|
||||
void obstack_grow0 (struct obstack *obstack, void *data, int size);
|
||||
void obstack_grow (struct obstack *obstack, const void *data, int size);
|
||||
void obstack_grow0 (struct obstack *obstack, const void *data, int size);
|
||||
|
||||
void obstack_1grow (struct obstack *obstack, int data_char);
|
||||
void obstack_ptr_grow (struct obstack *obstack, void *data);
|
||||
void obstack_ptr_grow (struct obstack *obstack, const void *data);
|
||||
void obstack_int_grow (struct obstack *obstack, int data);
|
||||
|
||||
void * obstack_finish (struct obstack *obstack);
|
||||
@@ -240,7 +240,7 @@ int obstack_object_size (struct obstack *obstack);
|
||||
int obstack_room (struct obstack *obstack);
|
||||
void obstack_make_room (struct obstack *obstack, int size);
|
||||
void obstack_1grow_fast (struct obstack *obstack, int data_char);
|
||||
void obstack_ptr_grow_fast (struct obstack *obstack, void *data);
|
||||
void obstack_ptr_grow_fast (struct obstack *obstack, const void *data);
|
||||
void obstack_int_grow_fast (struct obstack *obstack, int data);
|
||||
void obstack_blank_fast (struct obstack *obstack, int size);
|
||||
|
||||
@@ -387,7 +387,7 @@ __extension__ \
|
||||
int __len = (length); \
|
||||
if (__o->next_free + __len > __o->chunk_limit) \
|
||||
_obstack_newchunk (__o, __len); \
|
||||
_obstack_memcpy (__o->next_free, (char *) (where), __len); \
|
||||
_obstack_memcpy (__o->next_free, (const char *) (where), __len); \
|
||||
__o->next_free += __len; \
|
||||
(void) 0; })
|
||||
|
||||
@@ -397,7 +397,7 @@ __extension__ \
|
||||
int __len = (length); \
|
||||
if (__o->next_free + __len + 1 > __o->chunk_limit) \
|
||||
_obstack_newchunk (__o, __len + 1); \
|
||||
_obstack_memcpy (__o->next_free, (char *) (where), __len); \
|
||||
_obstack_memcpy (__o->next_free, (const char *) (where), __len); \
|
||||
__o->next_free += __len; \
|
||||
*(__o->next_free)++ = 0; \
|
||||
(void) 0; })
|
||||
@@ -419,7 +419,7 @@ __extension__ \
|
||||
({ struct obstack *__o = (OBSTACK); \
|
||||
if (__o->next_free + sizeof (void *) > __o->chunk_limit) \
|
||||
_obstack_newchunk (__o, sizeof (void *)); \
|
||||
*((void **)__o->next_free)++ = ((void *)datum); \
|
||||
*((void **)__o->next_free)++ = ((const void *)datum); \
|
||||
(void) 0; })
|
||||
|
||||
# define obstack_int_grow(OBSTACK,datum) \
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
/* Derived from the example in the OSF1 knlist manpage.
|
||||
OSF1 spe154.testdrive.compaq.com V5.0 1094 alpha
|
||||
aka (w/my private hostname compaq-tru64-50a) */
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <nlist.h>
|
||||
|
||||
#ifndef FD_CLOEXEC
|
||||
# define FD_CLOEXEC 1
|
||||
#endif
|
||||
|
||||
#ifndef LDAV_SYMBOL
|
||||
# define LDAV_SYMBOL "_avenrun"
|
||||
#endif
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
struct nlist nl[2];
|
||||
int retval;
|
||||
long offset;
|
||||
|
||||
nl[0].n_name = LDAV_SYMBOL;
|
||||
nl[1].n_name = "";
|
||||
|
||||
/*******************************************************/
|
||||
/* Call the knlist routine */
|
||||
retval = knlist (nl);
|
||||
|
||||
/******************************************************/
|
||||
/* Display addresses if returned. Otherwise, display */
|
||||
/* the appropriate error message. */
|
||||
if (retval < 0)
|
||||
{
|
||||
printf ("No kernel symbol addresses returned.\n");
|
||||
exit (1);
|
||||
}
|
||||
|
||||
if (nl[0].n_type == 0)
|
||||
{
|
||||
printf ("Unable to return address of symbol %s\n", nl[0].n_name);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
offset = nl[0].n_value;
|
||||
printf ("The address of symbol %s is %lx\n", nl[0].n_name, offset);
|
||||
|
||||
{
|
||||
double load_ave[3];
|
||||
int channel = open ("/dev/kmem", 0);
|
||||
if (channel < 0)
|
||||
{
|
||||
printf ("open failed\n");
|
||||
exit (1);
|
||||
}
|
||||
#ifdef FD_SETFD
|
||||
(void) fcntl (channel, F_SETFD, FD_CLOEXEC);
|
||||
#endif
|
||||
|
||||
if (lseek (channel, offset, 0) == -1L
|
||||
|| read (channel, (char *) load_ave, sizeof (load_ave))
|
||||
!= sizeof (load_ave))
|
||||
{
|
||||
close (channel);
|
||||
}
|
||||
}
|
||||
|
||||
exit (0);
|
||||
}
|
||||
@@ -1,3 +1,7 @@
|
||||
2000-11-03 Bruno Haible <haible@clisp.cons.org>
|
||||
|
||||
* jm-macros.m4 (jm_MACROS): Add test for wcrtomb.
|
||||
|
||||
2000-11-04 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* regex.m4: Use the `m4_' prefix on `syscmd' and `m4_sysval'.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#serial 26
|
||||
#serial 27
|
||||
|
||||
dnl Misc type-related macros for fileutils, sh-utils, textutils.
|
||||
|
||||
@@ -176,6 +176,7 @@ AC_DEFUN(jm_MACROS,
|
||||
strerror \
|
||||
strrchr \
|
||||
sysinfo \
|
||||
wcrtomb \
|
||||
tzset \
|
||||
)
|
||||
|
||||
|
||||
30
man/help2man
30
man/help2man
@@ -27,7 +27,7 @@ use Text::Tabs qw(expand);
|
||||
use POSIX qw(strftime setlocale LC_TIME);
|
||||
|
||||
my $this_program = 'help2man';
|
||||
my $this_version = '1.022';
|
||||
my $this_version = '1.23';
|
||||
my $version_info = <<EOT;
|
||||
GNU $this_program $this_version
|
||||
|
||||
@@ -269,9 +269,11 @@ s/^\n+//;
|
||||
s/\n*$/\n/;
|
||||
s/\n\n+/\n\n/g;
|
||||
|
||||
# Temporarily exchange leading dots and backslashes for tokens.
|
||||
# Temporarily exchange leading dots, apostrophes and backslashes for
|
||||
# tokens.
|
||||
s/^\./\x80/mg;
|
||||
s/\\/\x81/g;
|
||||
s/^'/\x81/mg;
|
||||
s/\\/\x82/g;
|
||||
|
||||
# Start a new paragraph (if required) for these.
|
||||
s/([^\n])\n(Report +bugs|Email +bug +reports +to|Written +by)/$1\n\n$2/g;
|
||||
@@ -366,7 +368,7 @@ while (length)
|
||||
{
|
||||
$matched .= $& if %append;
|
||||
$indent = length ($4 || "$1$3");
|
||||
$content = ".TP\n\x82$2\n\x82$5\n";
|
||||
$content = ".TP\n\x83$2\n\x83$5\n";
|
||||
unless ($4)
|
||||
{
|
||||
# Indent may be different on second line.
|
||||
@@ -378,7 +380,7 @@ while (length)
|
||||
elsif (s/^ {1,10}([+-]\S.*)\n//)
|
||||
{
|
||||
$matched .= $& if %append;
|
||||
$content = ".HP\n\x82$1\n";
|
||||
$content = ".HP\n\x83$1\n";
|
||||
$indent = 80; # not continued
|
||||
}
|
||||
|
||||
@@ -387,7 +389,7 @@ while (length)
|
||||
{
|
||||
$matched .= $& if %append;
|
||||
$indent = length $1;
|
||||
$content = ".TP\n\x82$2\n\x82$3\n";
|
||||
$content = ".TP\n\x83$2\n\x83$3\n";
|
||||
}
|
||||
|
||||
# Indented paragraph.
|
||||
@@ -395,7 +397,7 @@ while (length)
|
||||
{
|
||||
$matched .= $& if %append;
|
||||
$indent = length $1;
|
||||
$content = ".IP\n\x82$2\n";
|
||||
$content = ".IP\n\x83$2\n";
|
||||
}
|
||||
|
||||
# Left justified paragraph.
|
||||
@@ -411,7 +413,7 @@ while (length)
|
||||
while (s/^ {$indent}(\S.*)\n//)
|
||||
{
|
||||
$matched .= $& if %append;
|
||||
$content .= "\x82$1\n"
|
||||
$content .= "\x83$1\n"
|
||||
}
|
||||
|
||||
# Move to next paragraph.
|
||||
@@ -419,9 +421,10 @@ while (length)
|
||||
|
||||
for ($content)
|
||||
{
|
||||
# Leading dot protection.
|
||||
s/\x82\./\x80/g;
|
||||
s/\x82//g;
|
||||
# Leading dot and apostrophe protection.
|
||||
s/\x83\./\x80/g;
|
||||
s/\x83'/\x81/g;
|
||||
s/\x83//g;
|
||||
|
||||
# Convert options.
|
||||
s/(^| )(-[][\w=-]+)/$1 . convert_option $2/mge;
|
||||
@@ -485,9 +488,10 @@ for (@pre, (grep ! /^($filter)$/o, @include), @post)
|
||||
|
||||
for ($include{$_})
|
||||
{
|
||||
# Replace leading dot an backslash tokens.
|
||||
# Replace leading dot, apostrophe and backslash tokens.
|
||||
s/\x80/\\&./g;
|
||||
s/\x81/\\e/g;
|
||||
s/\x81/\\&'/g;
|
||||
s/\x82/\\e/g;
|
||||
print;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,58 @@
|
||||
2000-11-11 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Version 4.0.32.
|
||||
|
||||
* Makefile.maint (GZIP_ENV): Define to --no-name, so the timestamp
|
||||
is not included in the .tar.gz file.
|
||||
|
||||
* tests/mkdir/perm (tests): Use `empty' (instead of just blanks) to
|
||||
indicate no `-m' option. Using just blanks wasn't portable to
|
||||
Solaris2.5.1's /bin/sh.
|
||||
|
||||
* tests/mkdir/perm: Don't put a newline in IFS; that's not portable to
|
||||
NetBSD's /bin/sh. Instead, filter newlines and leading/trailing blanks
|
||||
out of `tests' before the `set -'.
|
||||
|
||||
* Makefile.maint (announcement): Limit depth of ChangeLog `find' to 2.
|
||||
|
||||
* src/ls.c (print_long_format): Wrap the `--full-time' date format
|
||||
string in _(...), so it too may be internationalized.
|
||||
Suggestion from Jungshik Shin.
|
||||
|
||||
2000-11-10 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/touch.c (main): Interpret a lone numeric argument of 8 or 10
|
||||
digits as a file name, rather than as a date/time in the obsolescent
|
||||
`MMDDhhmm[YY]' format. Reported by Wenjun Zheng.
|
||||
* tests/touch/obsolescent: New test for this.
|
||||
* tests/touch/Makefile.am (TESTS): Add obsolescent.
|
||||
|
||||
2000-11-06 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* tests/cp/cp-parents: Move mkdir tests into ../mkdir.
|
||||
|
||||
* doc/fileutils.texi: Use Free Documentation Licence.
|
||||
Change GNU to @sc{gnu} in many places.
|
||||
|
||||
* doc/texinfo.tex: Update from master repository.
|
||||
* config.sub: Likewise.
|
||||
* config.guess: Likewise.
|
||||
* man/help2man: Update from latest version: 1.23.
|
||||
|
||||
* src/mkdir.c: Do not set the permissions of the final directory
|
||||
component if it was not just created.
|
||||
Based on a patch from Volker Borchert.
|
||||
|
||||
* tests/rwx-to-mode: New file.
|
||||
* tests/Makefile.am (EXTRA_DIST): Add rwx-to-mode.
|
||||
* tests/mkdir/parents: New test for the above mkdir.c fix.
|
||||
* tests/mkdir/Makefile.am (TESTS): Add parents.
|
||||
(TESTS_ENVIRONMENT): Define srcdir=$(srcdir).
|
||||
|
||||
2000-11-02 Won-kyu Park <wkpark@chem.skku.ac.kr>
|
||||
|
||||
* src/df.c (print_header): Mark strings for translation.
|
||||
|
||||
2000-11-05 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Version 4.0.31.
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
Changes in release 4.01:
|
||||
[4.0.32]
|
||||
* touch now interprets a lone numeric argument of 8 or 10 digits as a file name,
|
||||
rather than as a date/time in the obsolescent `MMDDhhmm[YY]' format.
|
||||
* mkdir no longer sets the permissions of the final directory component
|
||||
if it already exists (this bug, too, was introduced recently)
|
||||
* ls's --full-time format string is now local dependent
|
||||
[4.0.31]
|
||||
* mkdir: fix a bug introduced in 4.0.30 whereby `mkdir existing-dir' would
|
||||
succeed. Now it fails, as it should (and used to).
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
2000-11-06 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/od.c (skip): st_size is not defined for directories.
|
||||
|
||||
2000-11-03 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* tests/sha1sum/sample-vec: New file, with tests derived from
|
||||
|
||||
14
src/df.c
14
src/df.c
@@ -149,19 +149,19 @@ static struct option const long_options[] =
|
||||
static void
|
||||
print_header (void)
|
||||
{
|
||||
printf ("Filesystem ");
|
||||
printf (_("Filesystem "));
|
||||
|
||||
if (print_type)
|
||||
printf (" Type");
|
||||
printf (_(" Type"));
|
||||
else
|
||||
printf (" ");
|
||||
|
||||
if (inode_format)
|
||||
printf (" Inodes IUsed IFree IUse%%");
|
||||
printf (_(" Inodes IUsed IFree IUse%%"));
|
||||
else if (output_block_size < 0)
|
||||
printf (" Size Used Avail Use%%");
|
||||
printf (_(" Size Used Avail Use%%"));
|
||||
else if (posix_format)
|
||||
printf (" %4d-blocks Used Available Capacity", output_block_size);
|
||||
printf (_(" %4d-blocks Used Available Capacity"), output_block_size);
|
||||
else
|
||||
{
|
||||
char buf[LONGEST_HUMAN_READABLE + 1];
|
||||
@@ -172,10 +172,10 @@ print_header (void)
|
||||
if (3 <= plen && strncmp (p + plen - 3, ".0", 2) == 0)
|
||||
strcpy (p + plen - 3, p + plen - 1);
|
||||
|
||||
printf (" %4s-blocks Used Available Use%%", p);
|
||||
printf (_(" %4s-blocks Used Available Use%%"), p);
|
||||
}
|
||||
|
||||
printf (" Mounted on\n");
|
||||
printf (_(" Mounted on\n"));
|
||||
}
|
||||
|
||||
/* If FSTYPE is a type of filesystem that should be listed,
|
||||
|
||||
2
src/ls.c
2
src/ls.c
@@ -2370,7 +2370,7 @@ print_long_format (const struct fileinfo *f)
|
||||
|
||||
if (full_time)
|
||||
{
|
||||
fmt = "%a %b %d %H:%M:%S %Y";
|
||||
fmt = _("%a %b %d %H:%M:%S %Y");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -174,7 +174,10 @@ main (int argc, char **argv)
|
||||
This extra step is necessary in some cases when the containing
|
||||
directory has a default ACL. */
|
||||
|
||||
if (fail == 0 && specified_mode)
|
||||
/* Set the permissions only if this directory has just
|
||||
been created. */
|
||||
|
||||
if (fail == 0 && specified_mode && dir_created)
|
||||
{
|
||||
fail = chmod (dir, newmode);
|
||||
if (fail)
|
||||
|
||||
6
src/od.c
6
src/od.c
@@ -1003,12 +1003,12 @@ skip (off_t n_skip)
|
||||
continue;
|
||||
}
|
||||
|
||||
/* The st_size field is valid only for regular files and
|
||||
directories. FIXME: is the preceding true?
|
||||
/* The st_size field is valid only for regular files
|
||||
(and for symbolic links, which cannot occur here).
|
||||
If the number of bytes left to skip is at least as large as
|
||||
the size of the current file, we can decrement
|
||||
n_skip and go on to the next file. */
|
||||
if (S_ISREG (file_stats.st_mode) || S_ISDIR (file_stats.st_mode))
|
||||
if (S_ISREG (file_stats.st_mode))
|
||||
{
|
||||
if (n_skip >= file_stats.st_size)
|
||||
{
|
||||
|
||||
@@ -334,7 +334,9 @@ main (int argc, char **argv)
|
||||
date_set++;
|
||||
}
|
||||
|
||||
if (!date_set && optind < argc && !STREQ (argv[optind - 1], "--"))
|
||||
/* The obsolescent `MMDDhhmm[YY]' form is valid IFF there are
|
||||
two or more non-option arguments. */
|
||||
if (!date_set && 2 <= argc - optind && !STREQ (argv[optind - 1], "--"))
|
||||
{
|
||||
newtime = posixtime (argv[optind], PDS_TRAILING_YEAR);
|
||||
if (newtime != (time_t) -1)
|
||||
|
||||
@@ -20,7 +20,7 @@ framework_failure=0
|
||||
mkdir $tmp || framework_failure=1
|
||||
cd $tmp || framework_failure=1
|
||||
mkdir foo bar || framework_failure=1
|
||||
mkdir -p a/b/c d e e-dir || framework_failure=1
|
||||
mkdir -p a/b/c d e || framework_failure=1
|
||||
|
||||
if test $framework_failure = 1; then
|
||||
echo 'failure in testing framework'
|
||||
@@ -45,9 +45,4 @@ p=`ls -ld e/d|sed 's/ .*//'`; case $p in drwxr-xr-x);; *) fail=1;; esac
|
||||
p=`ls -ld e/d/a|sed 's/ .*//'`; case $p in drwx-w--w-);; *) fail=1;; esac
|
||||
p=`ls -ld e/d/a/b/c|sed 's/ .*//'`; case $p in drwxr-xr-x);; *) fail=1;; esac
|
||||
|
||||
# Make sure `mkdir -p existing-dir' succeeds
|
||||
# and that `mkdir existing-dir' fails.
|
||||
mkdir -p e-dir || fail=1
|
||||
mkdir e-dir > /dev/null 2>&1 && fail=1
|
||||
|
||||
(exit $fail); exit
|
||||
|
||||
@@ -7,5 +7,5 @@ environment variable set to yes. E.g.,
|
||||
env RUN_EXPENSIVE_TESTS=yes make check
|
||||
|
||||
EOF
|
||||
exit 77
|
||||
(exit 77); exit
|
||||
fi
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
## Process this file with automake to produce Makefile.in -*-Makefile-*-.
|
||||
AUTOMAKE_OPTIONS = 1.1 gnits
|
||||
|
||||
TESTS = p-1 p-2 special-1 perm
|
||||
TESTS = p-1 p-2 special-1 perm parents
|
||||
EXTRA_DIST = $(TESTS)
|
||||
TESTS_ENVIRONMENT = \
|
||||
srcdir=$(srcdir) \
|
||||
PATH=`pwd`/../../src:$$PATH
|
||||
|
||||
@@ -118,9 +118,10 @@ l = @l@
|
||||
|
||||
AUTOMAKE_OPTIONS = 1.1 gnits
|
||||
|
||||
TESTS = p-1 p-2 special-1 perm
|
||||
TESTS = p-1 p-2 special-1 perm parents
|
||||
EXTRA_DIST = $(TESTS)
|
||||
TESTS_ENVIRONMENT = \
|
||||
srcdir=$(srcdir) \
|
||||
PATH=`pwd`/../../src:$$PATH
|
||||
|
||||
subdir = tests/mkdir
|
||||
|
||||
67
tests/mkdir/parents
Executable file
67
tests/mkdir/parents
Executable file
@@ -0,0 +1,67 @@
|
||||
#!/bin/sh
|
||||
# make sure mkdir's -p options works properly
|
||||
|
||||
if test "$VERBOSE" = yes; then
|
||||
set -x
|
||||
mkdir --version
|
||||
fi
|
||||
|
||||
pwd=`pwd`
|
||||
tmp=parents-$$
|
||||
trap 'status=$?; cd $pwd; rm -rf $tmp && exit $status' 0
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
|
||||
framework_failure=0
|
||||
|
||||
# Record absolute path of srcdir.
|
||||
cd $srcdir || framework_failure=1
|
||||
abs_srcdir=`pwd`
|
||||
|
||||
cd $pwd || framework_failure=1
|
||||
mkdir $tmp || framework_failure=1
|
||||
cd $tmp || framework_failure=1
|
||||
mkdir -m 700 e-dir || framework_failure=1
|
||||
|
||||
if test $framework_failure = 1; then
|
||||
echo 'failure in testing framework'
|
||||
(exit 1); exit
|
||||
fi
|
||||
|
||||
fail=0
|
||||
|
||||
p=`ls -ld e-dir|sed 's/ .*//'`
|
||||
case $p in drwx------);; *) fail=1;; esac
|
||||
if test $fail = 1; then
|
||||
cat <<EOF >&2
|
||||
$0: Since it looks like you're running this test in a directory with
|
||||
the sticky bit set, we're skipping this test.
|
||||
EOF
|
||||
(exit 77); exit
|
||||
fi
|
||||
|
||||
# Make sure `mkdir -p existing-dir' succeeds
|
||||
# and that `mkdir existing-dir' fails.
|
||||
mkdir -p e-dir || fail=1
|
||||
mkdir e-dir > /dev/null 2>&1 && fail=1
|
||||
|
||||
# Create an existing directory.
|
||||
umask 077
|
||||
mode_str=drwxr-x-wx
|
||||
mode_arg=`$abs_srcdir/../rwx-to-mode $mode_str`
|
||||
mkdir -m $mode_arg a || fail=1
|
||||
|
||||
# this `mkdir -p ...' shouldn't change perms of existing dir `a'.
|
||||
d_mode_str=drwx-w--wx
|
||||
d_mode_arg=`$abs_srcdir/../rwx-to-mode $d_mode_str`
|
||||
mkdir -p -m $d_mode_arg a/b/c/d
|
||||
|
||||
# Make sure the permissions of `a' haven't been changed.
|
||||
p=`ls -ld a|sed 's/ .*//'`; case $p in $mode_str);; *) fail=1;; esac
|
||||
# `b's and `c's should reflect the umask
|
||||
p=`ls -ld a/b|sed 's/ .*//'`; case $p in drwx------);; *) fail=1;; esac
|
||||
p=`ls -ld a/b/c|sed 's/ .*//'`; case $p in drwx------);; *) fail=1;; esac
|
||||
|
||||
# `d's perms are determined by the -m argument.
|
||||
p=`ls -ld a/b/c/d|sed 's/ .*//'`; case $p in $d_mode_str);; *) fail=1;; esac
|
||||
|
||||
(exit $fail); exit
|
||||
@@ -9,7 +9,7 @@ fi
|
||||
|
||||
pwd=`pwd`
|
||||
tmp=perm.$$
|
||||
trap 'status=$?; cd $pwd; rm -rf $tmp && exit $status' 0
|
||||
trap 'status=$?; cd $pwd; chmod -R u+rwx $tmp; rm -rf $tmp && exit $status' 0
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
|
||||
framework_failure=0
|
||||
@@ -26,27 +26,27 @@ fail=0
|
||||
# parent parent/dir
|
||||
# umask -m option resulting perm resulting perm
|
||||
tests='
|
||||
000 : :drwxrwxrwx:drwxrwxrwx:
|
||||
000 : -m 016 :drwxrwxrwx:d-----xrw-:
|
||||
077 : :drwx------:drwx------:
|
||||
050 : :drwx-w-rwx:drwx-w-rwx:
|
||||
050 : -m 312 :drwx-w-rwx:d-wx--x-w-:
|
||||
160 : :drwx--xrwx:drw---xrwx:
|
||||
160 : -m 743 :drwx--xrwx:drwxr---wx:
|
||||
- : - :last:last:
|
||||
000 : empty : drwxrwxrwx : drwxrwxrwx :
|
||||
000 : -m 016 : drwxrwxrwx : d-----xrw- :
|
||||
077 : empty : drwx------ : drwx------ :
|
||||
050 : empty : drwx-w-rwx : drwx-w-rwx :
|
||||
050 : -m 312 : drwx-w-rwx : d-wx--x-w- :
|
||||
160 : empty : drwx--xrwx : drw---xrwx :
|
||||
160 : -m 743 : drwx--xrwx : drwxr---wx :
|
||||
- : - : last : last :
|
||||
'
|
||||
for p in empty -p; do
|
||||
test _$p = _empty && p=
|
||||
|
||||
old_IFS=$IFS
|
||||
IFS=':
|
||||
'
|
||||
set - $tests
|
||||
IFS=':'
|
||||
set - `echo "$tests"|tr -d '\012'|sed 's/^ *//;s/ *:/:/g;s/: */:/g'`
|
||||
IFS=$old_IFS
|
||||
|
||||
while :; do
|
||||
test "$VERBOSE" = yes && set -x
|
||||
umask=$1 mode=$2 parent_perms=$3 sub_perms=$4
|
||||
test "_$mode" = _empty && mode=
|
||||
test $sub_perms = last && break
|
||||
# echo p=$p umask=$1 mode=$2 parent_perms=$3 sub_perms=$4
|
||||
shift; shift; shift; shift
|
||||
|
||||
31
tests/rwx-to-mode
Executable file
31
tests/rwx-to-mode
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/bin/sh
|
||||
# Convert an ls-style permission string, like drwxr----x and -rw-r-x-wx
|
||||
# to the equivalent chmod --mode (-m) argument, (=,u=rwx,g=r,o=x and
|
||||
# =,u=rw,g=rx,o=wx).
|
||||
|
||||
case $# in
|
||||
1) rwx=$1;;
|
||||
*) echo "$0: wrong number of arguments" 1>&2
|
||||
echo "Usage: $0 ls-style-mode-string" 1>&2
|
||||
exit 1;;
|
||||
esac
|
||||
|
||||
case $rwx in
|
||||
[ld-][rwx-][rwx-][rwxsS-][rwx-][rwx-][rwxsS-][rwx-][rwx-][rwxtT-]) ;;
|
||||
*) echo "$0: invalid mode string: $rwx" 1>&2; exit 1;;
|
||||
esac
|
||||
|
||||
# Perform these conversions:
|
||||
# S s
|
||||
# s xs
|
||||
# T t
|
||||
# t xt
|
||||
# The `T' and `t' ones are only valid for `other'.
|
||||
s='s/S/@/;s/s/x@/;s/@/s/'
|
||||
t='s/T/@/;s/t/x@/;s/@/t/'
|
||||
|
||||
u=`echo $rwx|sed 's/^.\(...\).*/,u=\1/;s/-//g;s/^,u=$//;'$s`
|
||||
g=`echo $rwx|sed 's/^....\(...\).*/,g=\1/;s/-//g;s/^,g=$//;'$s`
|
||||
o=`echo $rwx|sed 's/^.......\(...\).*/,o=\1/;s/-//g;s/^,o=$//;'$s';'$t`
|
||||
echo "=$u$g$o"
|
||||
exit 0
|
||||
@@ -1,7 +1,7 @@
|
||||
## Process this file with automake to produce Makefile.in -*-Makefile-*-.
|
||||
AUTOMAKE_OPTIONS = 1.3 gnits
|
||||
|
||||
TESTS = dir-1 dangling-symlink empty-file fifo no-rights
|
||||
TESTS = dir-1 dangling-symlink empty-file fifo no-rights obsolescent
|
||||
EXTRA_DIST = $(TESTS)
|
||||
TESTS_ENVIRONMENT = \
|
||||
host_triplet=$(host_triplet) \
|
||||
|
||||
@@ -118,7 +118,7 @@ l = @l@
|
||||
|
||||
AUTOMAKE_OPTIONS = 1.3 gnits
|
||||
|
||||
TESTS = dir-1 dangling-symlink empty-file fifo no-rights
|
||||
TESTS = dir-1 dangling-symlink empty-file fifo no-rights obsolescent
|
||||
EXTRA_DIST = $(TESTS)
|
||||
TESTS_ENVIRONMENT = \
|
||||
host_triplet=$(host_triplet) \
|
||||
|
||||
30
tests/touch/obsolescent
Executable file
30
tests/touch/obsolescent
Executable file
@@ -0,0 +1,30 @@
|
||||
#!/bin/sh
|
||||
# make sure touch succeeds with a single 8- or 10-digit file name argument
|
||||
|
||||
if test "$VERBOSE" = yes; then
|
||||
set -x
|
||||
touch --version
|
||||
fi
|
||||
|
||||
pwd=`pwd`
|
||||
tmp=obsol.$$
|
||||
trap 'status=$?; cd $pwd; rm -rf $tmp && exit $status' 0
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
|
||||
framework_failure=0
|
||||
mkdir $tmp || framework_failure=1
|
||||
cd $tmp || framework_failure=1
|
||||
|
||||
if test $framework_failure = 1; then
|
||||
echo 'failure in testing framework'
|
||||
(exit 1); exit
|
||||
fi
|
||||
|
||||
fail=0
|
||||
|
||||
for ones in 11111111 1111111111; do
|
||||
touch $ones || fail=1
|
||||
test -f $ones || fail=1
|
||||
done
|
||||
|
||||
(exit $fail); exit
|
||||
Reference in New Issue
Block a user