summaryrefslogtreecommitdiff
path: root/src/nl.c
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>1999-07-04 10:15:45 +0000
committerJim Meyering <jim@meyering.net>1999-07-04 10:15:45 +0000
commitca3b34f491eccaecab9aa30a39d7859ae2bba3e8 (patch)
tree23d4b3b85a61b129736d8966a88bb19288efa7c7 /src/nl.c
parentcdcf38b40f6787ad6c44530777ff7e0300d0f709 (diff)
downloadcoreutils-ca3b34f491eccaecab9aa30a39d7859ae2bba3e8.tar.xz
(proc_text, check_section, main):
Use size_t, not int, for lengths. Lines now contain trailing newline. Adapt for readline changes.
Diffstat (limited to 'src/nl.c')
-rw-r--r--src/nl.c42
1 files changed, 22 insertions, 20 deletions
diff --git a/src/nl.c b/src/nl.c
index 79394ff65..75ecbb7e2 100644
--- a/src/nl.c
+++ b/src/nl.c
@@ -97,19 +97,19 @@ static char *section_del = DEFAULT_SECTION_DELIMITERS;
static char *header_del = NULL;
/* Header section delimiter length. */
-static int header_del_len;
+static size_t header_del_len;
/* Body delimiter string. */
static char *body_del = NULL;
/* Body section delimiter length. */
-static int body_del_len;
+static size_t body_del_len;
/* Footer delimiter string. */
static char *footer_del = NULL;
/* Footer section delimiter length. */
-static int footer_del_len;
+static size_t footer_del_len;
/* Input buffer. */
static struct linebuffer line_buf;
@@ -325,7 +325,7 @@ proc_text (void)
case 'a':
if (blank_join > 1)
{
- if (line_buf.length || ++blank_lines == blank_join)
+ if (1 < line_buf.length || ++blank_lines == blank_join)
{
print_lineno ();
blank_lines = 0;
@@ -337,7 +337,7 @@ proc_text (void)
print_lineno ();
break;
case 't':
- if (line_buf.length)
+ if (1 < line_buf.length)
print_lineno ();
else
printf (print_no_line_fmt);
@@ -346,15 +346,14 @@ proc_text (void)
printf (print_no_line_fmt);
break;
case 'p':
- if (re_search (current_regex, line_buf.buffer, line_buf.length,
- 0, line_buf.length, (struct re_registers *) 0) < 0)
+ if (re_search (current_regex, line_buf.buffer, line_buf.length - 1,
+ 0, line_buf.length - 1, (struct re_registers *) 0) < 0)
printf (print_no_line_fmt);
else
print_lineno ();
break;
}
fwrite (line_buf.buffer, sizeof (char), line_buf.length, stdout);
- putchar ('\n');
}
/* Return the type of line in `line_buf'. */
@@ -362,15 +361,17 @@ proc_text (void)
static enum section
check_section (void)
{
- if (line_buf.length < 2 || memcmp (line_buf.buffer, section_del, 2))
+ size_t len = line_buf.length - 1;
+
+ if (len < 2 || memcmp (line_buf.buffer, section_del, 2))
return Text;
- if (line_buf.length == header_del_len
+ if (len == header_del_len
&& !memcmp (line_buf.buffer, header_del, header_del_len))
return Header;
- if (line_buf.length == body_del_len
+ if (len == body_del_len
&& !memcmp (line_buf.buffer, body_del, body_del_len))
return Body;
- if (line_buf.length == footer_del_len
+ if (len == footer_del_len
&& !memcmp (line_buf.buffer, footer_del, footer_del_len))
return Footer;
return Text;
@@ -445,6 +446,7 @@ int
main (int argc, char **argv)
{
int c, exit_status = 0;
+ size_t len;
program_name = argv[0];
setlocale (LC_ALL, "");
@@ -561,17 +563,17 @@ main (int argc, char **argv)
}
/* Initialize the section delimiters. */
- c = strlen (section_del);
+ len = strlen (section_del);
- header_del_len = c * 3;
+ header_del_len = len * 3;
header_del = xmalloc (header_del_len + 1);
strcat (strcat (strcpy (header_del, section_del), section_del), section_del);
- body_del_len = c * 2;
+ body_del_len = len * 2;
body_del = xmalloc (body_del_len + 1);
strcat (strcpy (body_del, section_del), section_del);
- footer_del_len = c;
+ footer_del_len = len;
footer_del = xmalloc (footer_del_len + 1);
strcpy (footer_del, section_del);
@@ -579,10 +581,10 @@ main (int argc, char **argv)
initbuffer (&line_buf);
/* Initialize the printf format for unnumbered lines. */
- c = strlen (separator_str);
- print_no_line_fmt = xmalloc (lineno_width + c + 1);
- memset (print_no_line_fmt, ' ', lineno_width + c);
- print_no_line_fmt[lineno_width + c] = '\0';
+ len = strlen (separator_str);
+ print_no_line_fmt = xmalloc (lineno_width + len + 1);
+ memset (print_no_line_fmt, ' ', lineno_width + len);
+ print_no_line_fmt[lineno_width + len] = '\0';
line_no = starting_line_number;
current_type = body_type;