[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Nano-devel] more potential line number problems on 64-bit machines (pat
From: |
David Lawrence Ramsey |
Subject: |
[Nano-devel] more potential line number problems on 64-bit machines (patch) |
Date: |
Thu, 07 Jul 2005 22:50:52 -0400 |
User-agent: |
Mozilla Thunderbird 1.0.2 (X11/20050317) |
I just noticed that there are several places I missed in 1.3.8 where the
line number is treated as an int instead of a ssize_t, most importantly
in renumber(), do_alt_speller(), and backup_lines(). The attached patch
against 1.3.8 should fix these.
diff -ur nano-1.3.8/src/nano.c nano/src/nano.c
--- nano-1.3.8/src/nano.c 2005-06-29 13:10:58.000000000 -0400
+++ nano/src/nano.c 2005-07-07 22:18:23.000000000 -0400
@@ -954,12 +954,12 @@
void renumber_all(void)
{
filestruct *temp;
- int i = 1;
+ ssize_t line = 1;
assert(fileage == NULL || fileage != fileage->next);
for (temp = fileage; temp != NULL; temp = temp->next)
- temp->lineno = i++;
+ temp->lineno = line++;
}
void renumber(filestruct *fileptr)
@@ -967,12 +967,12 @@
if (fileptr == NULL || fileptr->prev == NULL || fileptr == fileage)
renumber_all();
else {
- int lineno = fileptr->prev->lineno;
+ ssize_t line = fileptr->prev->lineno;
assert(fileptr != fileptr->next);
for (; fileptr != NULL; fileptr = fileptr->next)
- fileptr->lineno = ++lineno;
+ fileptr->lineno = ++line;
}
}
@@ -2317,9 +2322,9 @@
* otherwise the error string. */
const char *do_alt_speller(char *tempfile_name)
{
- int alt_spell_status, lineno_save = current->lineno;
+ int alt_spell_status;
size_t current_x_save = current_x, pww_save = placewewant;
- ssize_t current_y_save = current_y;
+ ssize_t current_y_save = current_y, lineno_save = current->lineno;
pid_t pid_spell;
char *ptr;
static int arglen = 3;
@@ -3004,12 +3011,12 @@
size_t i;
/* Generic loop variable. */
size_t current_x_save = current_x;
- int fl_lineno_save = first_line->lineno;
- int edittop_lineno_save = edittop->lineno;
- int current_lineno_save = current->lineno;
+ ssize_t fl_lineno_save = first_line->lineno;
+ ssize_t edittop_lineno_save = edittop->lineno;
+ ssize_t current_lineno_save = current->lineno;
#ifndef NANO_SMALL
bool old_mark_set = ISSET(MARK_ISSET);
- int mbb_lineno_save = 0;
+ ssize_t mbb_lineno_save = 0;
size_t mark_beginx_save = 0;
if (old_mark_set) {
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Nano-devel] more potential line number problems on 64-bit machines (patch),
David Lawrence Ramsey <=