Commit a417ddca authored by Robert Siemborski's avatar Robert Siemborski
Browse files

some random totsize-related bugfixes. (do_justify & do_wrap)

shouldn't break anything (famous last words)


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@125 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
No related merge requests found
Showing with 53 additions and 43 deletions
+53 -43
...@@ -34,6 +34,11 @@ ...@@ -34,6 +34,11 @@
user exit (29, discovered by Joshua Jensen) [FIXED] user exit (29, discovered by Joshua Jensen) [FIXED]
- Using nano -k, marked text is not cut properly. (31) [FIXED] - Using nano -k, marked text is not cut properly. (31) [FIXED]
- Invoking -t or -k has the effect of invoking both option. (32) [FIXED] - Invoking -t or -k has the effect of invoking both option. (32) [FIXED]
- totsize becomes incorrect after word-wrapping (25) [FIXED]
- similar problem found and corrected in do_justify
- Wrapping a line with autoindent mode sometimes causes a segfault (19)[FIXED]
- When inserting files, the display sometimes fails to display properly
until a pageup/down occurs (22)[FIXED]
** Open BUGS ** ** Open BUGS **
...@@ -45,10 +50,6 @@ ...@@ -45,10 +50,6 @@
program. Nano only uses ispell (for now) (12) program. Nano only uses ispell (for now) (12)
- Cutting a file with marked text and both marker ends on the same line - Cutting a file with marked text and both marker ends on the same line
causes a random segfault (16) causes a random segfault (16)
- Wrapping a line with autoindent mode sometimes causes a segfault (19).
- When inserting files, the display sometimes fails to display properly
until a pageup/down occurs (22).
- totsize becomes incorrect after word-wrapping (25)
- In search/replace code there is too much refreshing in bottomwin (26) - In search/replace code there is too much refreshing in bottomwin (26)
- In replace, there is no way to accept the default replace string. (27) - In replace, there is no way to accept the default replace string. (27)
- Using nano -t, user can not exit until a filename is given via ^O. (30) - Using nano -t, user can not exit until a filename is given via ^O. (30)
...@@ -10,6 +10,9 @@ Changes in CVS - ...@@ -10,6 +10,9 @@ Changes in CVS -
do_writeout() do_writeout()
- Changed check for filename to filename[0]. Added some code, - Changed check for filename to filename[0]. Added some code,
overall fixes bug #30 =-) overall fixes bug #30 =-)
- nano.c:
do_justify() & do_wrap():
- totsize-related fixes (Rob)
nano-0.9.13 - 07/23/2000 nano-0.9.13 - 07/23/2000
- Implemented Pico's -k mode. New flag CUT_TO_END, option (-k, --cut), - Implemented Pico's -k mode. New flag CUT_TO_END, option (-k, --cut),
......
...@@ -844,7 +844,9 @@ void do_wrap(filestruct * inptr, char input_char) ...@@ -844,7 +844,9 @@ void do_wrap(filestruct * inptr, char input_char)
totlines++; totlines++;
totsize++; /* Everything about it makes me want this line here but it causes
* totsize to be high by one for some reason. Sigh. (Rob) */
/* totsize++; */
renumber(inptr); renumber(inptr);
edit_update_top(edittop); edit_update_top(edittop);
...@@ -1399,56 +1401,61 @@ int do_justify(void) ...@@ -1399,56 +1401,61 @@ int do_justify(void)
unlink_node(tmpnode); unlink_node(tmpnode);
delete_node(tmpnode); delete_node(tmpnode);
} }
totsize -= strlen(current->data);
justify_format(current->data); justify_format(current->data);
slen = strlen(current->data); slen = strlen(current->data);
while ((strlenpt(current->data) > (fill)) totsize += slen;
&& !no_spaces(current->data)) {
int i = 0; if((strlenpt(current->data) > (fill))
int len2 = 0; && !no_spaces(current->data)) {
filestruct *tmpline = nmalloc(sizeof(filestruct)); do {
int i = 0;
/* Start at fill , unless line isn't that long (but it appears at least int len2 = 0;
* fill long with tabs. filestruct *tmpline = nmalloc(sizeof(filestruct));
*/
if (slen > fill) /* Start at fill , unless line isn't that long (but it
i = fill; * appears at least fill long with tabs.
else */
i = slen; if (slen > fill)
for (; i > 0; i--) { i = fill;
if (isspace(current->data[i]) && else
((strlenpt(current->data) - strlen(current->data + i)) <= i = slen;
fill)) break; for (; i > 0; i--) {
} if (isspace(current->data[i]) &&
if (!i) ((strlenpt(current->data) - strlen(current->data +i)) <=
break; fill)) break;
}
if (!i)
break;
current->data[i] = '\0'; current->data[i] = '\0';
len2 = strlen(current->data + i + 1); len2 = strlen(current->data + i + 1);
tmpline->data = nmalloc(len2 + 1); tmpline->data = nmalloc(len2 + 1);
/* Skip the white space in current. */ /* Skip the white space in current. */
memcpy(tmpline->data, current->data + i + 1, len2); memcpy(tmpline->data, current->data + i + 1, len2);
tmpline->data[len2] = '\0'; tmpline->data[len2] = '\0';
current->data = nrealloc(current->data, i + 1); current->data = nrealloc(current->data, i + 1);
tmpline->prev = current; tmpline->prev = current;
tmpline->next = current->next; tmpline->next = current->next;
if (current->next != NULL) if (current->next != NULL)
current->next->prev = tmpline; current->next->prev = tmpline;
current->next = tmpline; current->next = tmpline;
current = tmpline; current = tmpline;
slen -= i + 1; slen -= i + 1;
current_y++; current_y++;
} while ((strlenpt(current->data) > (fill))
&& !no_spaces(current->data));
} }
if (current->next) if (current->next)
current = current->next; current = current->next;
else else
...@@ -1469,7 +1476,6 @@ int do_justify(void) ...@@ -1469,7 +1476,6 @@ int do_justify(void)
fix_editbot(); fix_editbot();
} }
edit_refresh(); edit_refresh();
statusbar("Justify Complete"); statusbar("Justify Complete");
return 1; return 1;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment