+Wed Oct 20 20:05:48 1993 Jim Meyering (meyering@comco.com)
+
+ * memchr.c (memchr): Do the 32-bit assignment only if !LONG_64_BITS.
+ In the 64-bit assignment, be careful to cast the shift operand to
+ long.
+ Abort if sizeof (unsigned long) > 8.
+
+Tue Oct 19 22:37:58 1993 Jim Meyering (meyering@comco.com)
+
+ * csplit.c: Allow repeat counts to be specified via `{*}'.
+ New option --suffix=format. Supercedes --digits option.
+ New option --abandon-null-files.
+ From Ronald F. Guilmette (rfg@netcom.com).
+
+ * csplit.1: Updated.
+ From Ronald F. Guilmette.
+
+ * csplit.c: Remove register keyword (replace with `int' in two cases).
+
+ * csplit.c: [MAX]: Macro renamed from max and moved to top of file.
+ (bytes_to_octal_digits): New static array.
+ (get_format_flags): Combine '+' and ' ' cases of switch stmt.
+ Return count if for loop terminates.
+ (get_format_width): Use `bytes_to_octal_digits' instead of just 11.
+ (get_format_prec): Make sure is_negative is defined before used.
+ (get_format_conv_type): Give a different error message if there
+ is no conversion specifier.
+ Test ISPRINT (ch) instead of `ch < '~' && ch > ' ''.
+ (max_out): Use `%%' rather than `%' in format string.
+
+Sat Oct 16 10:45:17 1993 Jim Meyering (meyering@comco.com)
+
+ * pr.c (main): When argc == 1, don't try to xmalloc (0).
+
Tue Oct 12 00:53:26 1993 Jim Meyering (meyering@comco.com)
* xwrite.c [HAVE_CONFIG_H, CONFIG_BROKETS]: Include <config.h>
in parallel, each failed open results in one fewer output column.
Added POSIX -r option to suppress the message.
* pr.c: Added variables: failed_opens, ignore_failed_opens.
- These changes were based in part on work by David MacKenzie.
+ These changes were based in part on work by David MacKenzie.
Sat Aug 24 15:27:39 1991 Jim Meyering (meyering at pogo)
return head->first_available;
}
-/* Return a pointer to the logical first line in the buffer and make the
+/* Return a pointer to the logical first line in the buffer and make the
next line the logical first line.
Return NULL if there is no more input. */
/* cut - remove parts of lines of files
Copyright (C) 1984 by David M. Ihnat
-
+
This program is a total rewrite of the Bell Laboratories Unix(Tm)
command of the same name, as of System V. It contains no proprietary
code, and therefore may be used without violation of any proprietary
{
int prev_tab = 0;
int i;
-
+
for (i = 0; i < entries; i++)
{
if (tabs[i] == 0)
allocated_out += 1024;
line_out = xrealloc (line_out, allocated_out);
}
-
+
if (c == '\n')
{
line_out[offset_out++] = c;
if (show_help)
usage ();
-
+
if (nfiles != 2)
usage ();
/* paste - merge lines of files
Copyright (C) 1984 by David M. Ihnat
-
+
This program is a total rewrite of the Bell Laboratories Unix(Tm)
command of the same name, as of System V. It contains no proprietary
code, and therefore may be used without violation of any proprietary
this program accepts full responsibility for any effects or loss;
in particular, the author is not responsible for any losses,
explicit or incidental, that may be incurred through use of this program.
-
+
I ask that any bugs (and, if possible, fixes) be reported to me when
possible. -David Ihnat (312) 784-4544 ignatz@homebru.chi.il.us
The list of valid escape sequences has been expanded over the Unix
version, to include \b, \f, \r, and \v.
-
+
POSIX changes, bug fixes, long-named options, and cleanup
by David MacKenzie <djm@gnu.ai.mit.edu>.
-
+
Options:
--serial
-s Paste one file at a time rather than
error (0, errno, "%s", fnamptr[i]);
errors = 1;
}
-
+
fileptr[i] = CLOSED;
files_open--;
}
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
-
+
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.
-
+
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
return -1;
}
}
-
+
/* This algorithm seems to depend on sign extension in `ch' in order to
give the right results. Ick. */
while ((ch = getc (fp)) != EOF)
bytes_in_buffer = 0;
return;
}
-
+
/* Write out as many full buffers as possible. */
while (bytes_to_add >= bytes_available)
{
{
int prev_tab = 0;
int i;
-
+
for (i = 0; i < entries; i++)
{
if (tabs[i] == 0)
{
FILE *fp; /* Input stream. */
int c; /* Each input character. */
- /* Index in `tab_list' of next tabstop: */
+ /* Index in `tab_list' of next tabstop: */
int tab_index = 0; /* For calculating width of pending tabs. */
int print_tab_index = 0; /* For printing as many tabs as possible. */
int column = 0; /* Column on screen of next char. */
case 'u':
mode = output_unique;
break;
-
+
case 'w':
check_chars = atoi (optarg);
break;
-
+
default:
usage ();
}