Vendor import of ee 1.4.7.

This commit is contained in:
Ed Schouten 2009-05-26 19:01:07 +00:00
parent 01177cd0a8
commit 102e06e7f9
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/vendor/ee/dist/; revision=192840
svn path=/vendor/ee/1.4.7/; revision=192841; tag=vendor/ee/1.4.7
5 changed files with 236 additions and 225 deletions

View File

@ -1,3 +1,9 @@
version 1.4.7 (2/10/2009)
- changed how strings are terminated from the old usage of NULL to the current
use of character zero, '\0'
- changed the licensing since the Artistic License is now considered
restrictive
version 1.4.6
- modified new_curse.c to handle different subdirectory naming in terminfo
directory; first noted on Mac OS 10.2

View File

@ -1,26 +1,29 @@
THIS MATERIAL IS PROVIDED "AS IS". THERE ARE NO WARRANTIES OF
ANY KIND WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE. Neither Hewlett-Packard nor
Hugh Mahon shall be liable for errors contained herein, nor for
incidental or consequential damages in connection with the
furnishing, performance or use of this material. Neither
Hewlett-Packard nor Hugh Mahon assumes any responsibility for
the use or reliability of this software or documentation. This
software and documentation is totally UNSUPPORTED. There is no
support contract available. Hewlett-Packard has done NO
Quality Assurance on ANY of the program or documentation. You
may find the quality of the materials inferior to supported
materials.
Copyright (c) 2009, Hugh Mahon
All rights reserved.
This software may be distributed under the terms of Larry Wall's
Artistic license, a copy of which is included in this distribution.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
This notice must be included with this software and any
derivatives.
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
Any modifications to this software by anyone but the original author
must be so noted.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
The editor 'ee' (easy editor) is intended to be a simple, easy to use
@ -51,7 +54,7 @@ completely replaced by graphical user interfaces for at least a few more
years, I'd like to do what I can to make using computers with less
glamorous interfaces as easy to use as possible. If terminal interfaces
are still used in ten years, I hope neophytes won't still be stuck with
only vi.
only vi.
For a text editor to be easy to use requires a certain set of abilities. In
order for ee to work, a terminal must have the ability to position the cursor
@ -110,7 +113,7 @@ are:
people.
Hugh Mahon |___|
h_mahon@fc.hp.com | |
hugh4242@yahoo.com | |
|\ /|
| \/ |

224
ee.c
View File

@ -5,34 +5,35 @@
|
| written by Hugh Mahon
|
| THIS MATERIAL IS PROVIDED "AS IS". THERE ARE
| NO WARRANTIES OF ANY KIND WITH REGARD TO THIS
| MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE
| IMPLIED WARRANTIES OF MERCHANTABILITY AND
| FITNESS FOR A PARTICULAR PURPOSE. Neither
| Hewlett-Packard nor Hugh Mahon shall be liable
| for errors contained herein, nor for
| incidental or consequential damages in
| connection with the furnishing, performance or
| use of this material. Neither Hewlett-Packard
| nor Hugh Mahon assumes any responsibility for
| the use or reliability of this software or
| documentation. This software and
| documentation is totally UNSUPPORTED. There
| is no support contract available. Hewlett-
| Packard has done NO Quality Assurance on ANY
| of the program or documentation. You may find
| the quality of the materials inferior to
| supported materials.
|
| This software is not a product of Hewlett-Packard, Co., or any
| other company. No support is implied or offered with this software.
| You've got the source, and you're on your own.
| Copyright (c) 2009, Hugh Mahon
| All rights reserved.
|
| Redistribution and use in source and binary forms, with or without
| modification, are permitted provided that the following conditions
| are met:
|
| * Redistributions of source code must retain the above copyright
| notice, this list of conditions and the following disclaimer.
| * Redistributions in binary form must reproduce the above
| copyright notice, this list of conditions and the following
| disclaimer in the documentation and/or other materials provided
| with the distribution.
|
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
| FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
| COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
| INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
| BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
| LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
| CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
| LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
| ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
| POSSIBILITY OF SUCH DAMAGE.
|
| This software may be distributed under the terms of Larry Wall's
| Artistic license, a copy of which is included in this distribution.
|
| This notice must be included with this software and any derivatives.
| -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
| This editor was purposely developed to be simple, both in
| interface and implementation. This editor was developed to
@ -54,13 +55,7 @@
*/
char *ee_copyright_message =
"Copyright (c) 1986, 1990, 1991, 1992, 1993, 1994, 1995, 1996 Hugh Mahon ";
char *ee_long_notice[] = {
"This software and documentation contains",
"proprietary information which is protected by",
"copyright. All rights are reserved."
};
"Copyright (c) 1986, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 2009 Hugh Mahon ";
#include "ee_version.h"
@ -300,7 +295,7 @@ void finish P_((void));
int quit P_((int noverify));
void edit_abort P_((int arg));
void delete_text P_((void));
int write_file P_((char *file_name));
int write_file P_((char *file_name, int warn_if_exists));
int search P_((int display_message));
void search_prompt P_((void));
void del_char P_((void));
@ -562,7 +557,7 @@ char *argv[];
signal(SIGINT, edit_abort);
d_char = malloc(3); /* provide a buffer for multi-byte chars */
d_word = malloc(150);
*d_word = (char) NULL;
*d_word = '\0';
d_line = NULL;
dlt_line = txtalloc();
dlt_line->line = d_line;
@ -806,7 +801,7 @@ int disp;
d_char[0] = *point;
d_char[1] = *(point + 1);
}
d_char[del_width] = (unsigned char) NULL;
d_char[del_width] = '\0';
}
while (temp_pos <= curr_line->line_length)
{
@ -834,7 +829,7 @@ int disp;
if (in == 8)
{
d_char[0] = '\n';
d_char[1] = (unsigned char) NULL;
d_char[1] = '\0';
}
tp = point;
temp_pos = 1;
@ -846,7 +841,7 @@ int disp;
tp++;
temp2++;
}
*tp = (char) NULL;
*tp = '\0';
free(temp_buff->line);
free(temp_buff);
temp_buff = curr_line;
@ -972,7 +967,7 @@ int column;
waddch(window, (char)character);
return(1);
}
for (i2 = 0; (string[i2] != (char) NULL) && (((column+i2+1)-horiz_offset) < last_col); i2++)
for (i2 = 0; (string[i2] != '\0') && (((column+i2+1)-horiz_offset) < last_col); i2++)
waddch(window, string[i2]);
return(strlen(string));
}
@ -1097,13 +1092,13 @@ int disp;
temp++;
}
temp=point;
*temp = (char) NULL;
*temp = '\0';
temp = resiz_line((1 - temp_nod->line_length), curr_line, position);
curr_line->line_length = 1 + temp - curr_line->line;
}
curr_line->line_length = position;
curr_line = temp_nod;
*extra = (char) NULL;
*extra = '\0';
position = 1;
point= curr_line->line;
if (disp)
@ -1146,9 +1141,9 @@ struct files *name_alloc() /* allocate space for file name list node */
unsigned char *next_word(string) /* move to next word in string */
unsigned char *string;
{
while ((*string != (char) NULL) && ((*string != 32) && (*string != 9)))
while ((*string != '\0') && ((*string != 32) && (*string != 9)))
string++;
while ((*string != (char) NULL) && ((*string == 32) || (*string == 9)))
while ((*string != '\0') && ((*string == 32) || (*string == 9)))
string++;
return(string);
}
@ -1182,7 +1177,7 @@ control() /* use control for commands */
if (in == 1) /* control a */
{
string = get_string(ascii_code_str, TRUE);
if (*string != (char) NULL)
if (*string != '\0')
{
in = atoi(string);
wmove(text_win, scr_vert, (scr_horz - horiz_offset));
@ -1290,7 +1285,7 @@ emacs_control()
else if (in == 15) /* control o */
{
string = get_string(ascii_code_str, TRUE);
if (*string != (char) NULL)
if (*string != '\0')
{
in = atoi(string);
wmove(text_win, scr_vert, (scr_horz - horiz_offset));
@ -1689,12 +1684,12 @@ char *cmd_str1;
return;
}
cmd_str = next_word(cmd_str);
if (*cmd_str == (char) NULL)
if (*cmd_str == '\0')
{
cmd_str = cmd_str2 = get_string(file_write_prompt_str, TRUE);
}
tmp_file = resolve_name(cmd_str);
write_file(tmp_file);
write_file(tmp_file, 1);
if (tmp_file != cmd_str)
free(tmp_file);
}
@ -1705,7 +1700,7 @@ char *cmd_str1;
return;
}
cmd_str = next_word(cmd_str);
if (*cmd_str == (char) NULL)
if (*cmd_str == '\0')
{
cmd_str = cmd_str2 = get_string(file_read_prompt_str, TRUE);
}
@ -1916,9 +1911,9 @@ int advance; /* if true, skip leading spaces and tabs */
}
wrefresh(com_win);
if (esc_flag)
in = (char) NULL;
in = '\0';
} while ((in != '\n') && (in != '\r'));
*nam_str = (char) NULL;
*nam_str = '\0';
nam_str = tmp_string;
if (((*nam_str == ' ') || (*nam_str == 9)) && (advance))
nam_str = next_word(nam_str);
@ -1943,7 +1938,7 @@ int sensitive;
strng1 = string1;
strng2 = string2;
tmp = 0;
if ((strng1 == NULL) || (strng2 == NULL) || (*strng1 == (char) NULL) || (*strng2 == (char) NULL))
if ((strng1 == NULL) || (strng2 == NULL) || (*strng1 == '\0') || (*strng2 == '\0'))
return(FALSE);
equal = TRUE;
while (equal)
@ -1960,7 +1955,7 @@ int sensitive;
}
strng1++;
strng2++;
if ((*strng1 == (char) NULL) || (*strng2 == (char) NULL) || (*strng1 == ' ') || (*strng2 == ' '))
if ((*strng1 == '\0') || (*strng2 == '\0') || (*strng1 == ' ') || (*strng2 == ' '))
break;
tmp++;
}
@ -2116,13 +2111,13 @@ char *arguments[];
temp_names = temp_names->next_name;
}
ptr = temp_names->name = malloc(strlen(buff) + 1);
while (*buff != (char) NULL)
while (*buff != '\0')
{
*ptr = *buff;
buff++;
ptr++;
}
*ptr = (char) NULL;
*ptr = '\0';
temp_names->next_name = NULL;
input_file = TRUE;
recv_file = TRUE;
@ -2204,7 +2199,7 @@ check_fp() /* open or close files according to flags */
wmove(com_win, 0, 0);
wclrtoeol(com_win);
text_changes = TRUE;
if ((tmp_file != NULL) && (*tmp_file != (char) NULL))
if ((tmp_file != NULL) && (*tmp_file != '\0'))
wprintw(com_win, file_read_fin_msg, tmp_file);
}
wrefresh(com_win);
@ -2343,7 +2338,7 @@ int *append; /* TRUE if must append more text to end of current line */
point++;
str1++;
}
*point = (char) NULL;
*point = '\0';
*append = FALSE;
if ((num == length) && (*str2 != '\n'))
*append = TRUE;
@ -2381,10 +2376,10 @@ finish() /* prepare to exit edit session */
| portion of file_op()
*/
if ((file_name == NULL) || (*file_name == (char) NULL))
if ((file_name == NULL) || (*file_name == '\0'))
file_name = get_string(save_file_name_prompt, TRUE);
if ((file_name == NULL) || (*file_name == (char) NULL))
if ((file_name == NULL) || (*file_name == '\0'))
{
wmove(com_win, 0, 0);
wprintw(com_win, file_not_saved_msg);
@ -2401,7 +2396,7 @@ finish() /* prepare to exit edit session */
file_name = tmp_file;
}
if (write_file(file_name))
if (write_file(file_name, 1))
{
text_changes = FALSE;
quit(0);
@ -2468,7 +2463,7 @@ delete_text()
free(curr_line->next_line);
}
curr_line->next_line = NULL;
*curr_line->line = (char) NULL;
*curr_line->line = '\0';
curr_line->line_length = 1;
curr_line->line_number = 1;
point = curr_line->line;
@ -2477,8 +2472,9 @@ delete_text()
}
int
write_file(file_name)
write_file(file_name, warn_if_exists)
char *file_name;
int warn_if_exists;
{
char cr;
char *tmp_point;
@ -2488,7 +2484,8 @@ char *file_name;
int write_flag = TRUE;
charac = lines = 0;
if ((in_file_name == NULL) || strcmp(in_file_name, file_name))
if (warn_if_exists &&
((in_file_name == NULL) || strcmp(in_file_name, file_name)))
{
if ((temp_fp = fopen(file_name, "r")))
{
@ -2558,7 +2555,7 @@ int display_message;
int iter;
int found;
if ((srch_str == NULL) || (*srch_str == (char) NULL))
if ((srch_str == NULL) || (*srch_str == '\0'))
return(FALSE);
if (display_message)
{
@ -2583,7 +2580,7 @@ int display_message;
if (case_sen) /* if case sensitive */
{
srch_3 = srch_str;
while ((*srch_2 == *srch_3) && (*srch_3 != (char) NULL))
while ((*srch_2 == *srch_3) && (*srch_3 != '\0'))
{
found = TRUE;
srch_2++;
@ -2593,14 +2590,14 @@ int display_message;
else /* if not case sensitive */
{
srch_3 = u_srch_str;
while ((toupper(*srch_2) == *srch_3) && (*srch_3 != (char) NULL))
while ((toupper(*srch_2) == *srch_3) && (*srch_3 != '\0'))
{
found = TRUE;
srch_2++;
srch_3++;
}
} /* end else */
if (!((*srch_3 == (char) NULL) && (found)))
if (!((*srch_3 == '\0') && (found)))
{
found = FALSE;
if (iter < srch_line->line_length)
@ -2668,19 +2665,19 @@ search_prompt() /* prompt and read search string (srch_str) */
{
if (srch_str != NULL)
free(srch_str);
if ((u_srch_str != NULL) && (*u_srch_str != (char) NULL))
if ((u_srch_str != NULL) && (*u_srch_str != '\0'))
free(u_srch_str);
srch_str = get_string(search_prompt_str, FALSE);
gold = FALSE;
srch_3 = srch_str;
srch_1 = u_srch_str = malloc(strlen(srch_str) + 1);
while (*srch_3 != (char) NULL)
while (*srch_3 != '\0')
{
*srch_1 = toupper(*srch_3);
srch_1++;
srch_3++;
}
*srch_1 = (char) NULL;
*srch_1 = '\0';
search(TRUE);
}
@ -2717,7 +2714,7 @@ undel_char() /* undelete last deleted character */
{
in = d_char[0];
insert(in);
if (d_char[1] != (unsigned char) NULL)
if (d_char[1] != '\0')
{
in = d_char[1];
insert(in);
@ -2759,7 +2756,7 @@ del_word() /* delete word in front of cursor */
d_word2++;
d_word3++;
}
*d_word2 = (char) NULL;
*d_word2 = '\0';
d_wrd_len = difference = d_word2 - d_word;
d_word2 = point;
while (tposit < curr_line->line_length)
@ -2770,7 +2767,7 @@ del_word() /* delete word in front of cursor */
d_word3++;
}
curr_line->line_length -= difference;
*d_word2 = (char) NULL;
*d_word2 = '\0';
draw_line(scr_vert, scr_horz,point,position,curr_line->line_length);
d_char[0] = tmp_char[0];
d_char[1] = tmp_char[1];
@ -2823,7 +2820,7 @@ undel_word() /* undelete last deleted word */
}
curr_line->line_length += d_wrd_len;
tmp_old_ptr = point;
*tmp_ptr = (char) NULL;
*tmp_ptr = '\0';
tmp_ptr = tmp_space;
tposit = 1;
/*
@ -2836,7 +2833,7 @@ undel_word() /* undelete last deleted word */
tmp_ptr++;
tmp_old_ptr++;
}
*tmp_old_ptr = (char) NULL;
*tmp_old_ptr = '\0';
free(tmp_space);
draw_line(scr_vert, scr_horz, point, position, curr_line->line_length);
}
@ -2862,8 +2859,8 @@ del_line() /* delete from cursor to end of line */
tposit++;
}
dlt_line->line_length = 1 + tposit - position;
*dl1 = (char) NULL;
*point = (char) NULL;
*dl1 = '\0';
*point = '\0';
curr_line->line_length = position;
wclrtoeol(text_win);
if (curr_line->next_line != NULL)
@ -2898,7 +2895,7 @@ undel_line() /* undelete last deleted line */
ud1++;
ud2++;
}
*ud1 = (char) NULL;
*ud1 = '\0';
draw_line(scr_vert, scr_horz,point,position,curr_line->line_length);
}
@ -3044,7 +3041,7 @@ char *string; /* string containing user command */
if (!(path = getenv("SHELL")))
path = "/bin/sh";
last_slash = temp_point = path;
while (*temp_point != (char) NULL)
while (*temp_point != '\0')
{
if (*temp_point == '/')
last_slash = ++temp_point;
@ -3734,7 +3731,7 @@ int arg;
{
string = get_string(file_write_prompt_str, TRUE);
tmp_file = resolve_name(string);
write_file(tmp_file);
write_file(tmp_file, 1);
if (tmp_file != string)
free(tmp_file);
free(string);
@ -3751,9 +3748,9 @@ int arg;
flag = FALSE;
string = in_file_name;
if ((string == NULL) || (*string == (char) NULL))
if ((string == NULL) || (*string == '\0'))
string = get_string(save_file_name_prompt, TRUE);
if ((string == NULL) || (*string == (char) NULL))
if ((string == NULL) || (*string == '\0'))
{
wmove(com_win, 0, 0);
wprintw(com_win, file_not_saved_msg);
@ -3771,7 +3768,7 @@ int arg;
string = tmp_file;
}
}
if (write_file(string))
if (write_file(string, 1))
{
in_file_name = string;
text_changes = FALSE;
@ -3788,7 +3785,7 @@ shell_op()
char *string;
if (((string = get_string(shell_prompt, TRUE)) != NULL) &&
(*string != (char) NULL))
(*string != '\0'))
{
sh_command(string);
free(string);
@ -3914,14 +3911,14 @@ Format() /* format the paragraph according to set margins */
offset -= position;
counter = position;
line = temp1 = point;
while ((*temp1 != (char) NULL) && (*temp1 != ' ') && (*temp1 != '\t') && (counter < curr_line->line_length))
while ((*temp1 != '\0') && (*temp1 != ' ') && (*temp1 != '\t') && (counter < curr_line->line_length))
{
*temp2 = *temp1;
temp2++;
temp1++;
counter++;
}
*temp2 = (char) NULL;
*temp2 = '\0';
if (position != 1)
bol();
while (!Blank_Line(curr_line->prev_line))
@ -4113,7 +4110,7 @@ ee_init() /* check for init file and read it if it exists */
str1 = str2 = string;
while (*str2 != '\n')
str2++;
*str2 = (char) NULL;
*str2 = '\0';
if (unique_test(string, init_strings) != 1)
continue;
@ -4144,7 +4141,7 @@ ee_init() /* check for init file and read it if it exists */
else if (compare(str1, Echo, FALSE))
{
str1 = next_word(str1);
if (*str1 != (char) NULL)
if (*str1 != '\0')
echo_string(str1);
}
else if (compare(str1, PRINTCOMMAND, FALSE))
@ -4268,7 +4265,7 @@ dump_ee_conf()
while ((string = fgets(buffer, 512, old_init_file)) != NULL)
{
length = strlen(string);
string[length - 1] = (char) NULL;
string[length - 1] = '\0';
if (unique_test(string, init_strings) == 1)
{
@ -4315,7 +4312,7 @@ char *string;
int Counter;
temp = string;
while (*temp != (char) NULL)
while (*temp != '\0')
{
if (*temp == '\\')
{
@ -4382,17 +4379,24 @@ spell_op() /* check spelling of words in the editor */
void
ispell_op()
{
char name[128];
char template[128], *name;
char string[256];
int pid;
int fd;
if (restrict_mode())
{
return;
}
pid = getpid();
sprintf(name, "/tmp/ee.%d", pid);
if (write_file(name))
(void)sprintf(template, "/tmp/ee.XXXXXXXX");
fd = mkstemp(template);
if (fd < 0) {
wmove(com_win, 0, 0);
wprintw(com_win, create_file_fail_msg, name);
wrefresh(com_win);
return;
}
close(fd);
if (write_file(name, 0))
{
sprintf(string, "ispell %s", name);
sh_command(string);
@ -4415,7 +4419,7 @@ struct text *test_line;
return(0);
pnt = test_line->line;
if ((pnt == NULL) || (*pnt == (char) NULL) ||
if ((pnt == NULL) || (*pnt == '\0') ||
(*pnt == '.') || (*pnt == '>'))
return(0);
@ -4424,16 +4428,16 @@ struct text *test_line;
pnt = next_word(pnt);
}
if (*pnt == (char) NULL)
if (*pnt == '\0')
return(0);
counter = 0;
while ((*pnt != (char) NULL) && ((*pnt != ' ') && (*pnt != '\t')))
while ((*pnt != '\0') && ((*pnt != ' ') && (*pnt != '\t')))
{
pnt++;
counter++;
}
while ((*pnt != (char) NULL) && ((*pnt == ' ') || (*pnt == '\t')))
while ((*pnt != '\0') && ((*pnt == ' ') || (*pnt == '\t')))
{
pnt++;
counter++;
@ -4484,7 +4488,7 @@ Auto_Format() /* format the paragraph according to set margins */
d_line = NULL;
auto_format = FALSE;
offset = position;
if ((position != 1) && ((*point == ' ') || (*point == '\t') || (position == curr_line->line_length) || (*point == (char) NULL)))
if ((position != 1) && ((*point == ' ') || (*point == '\t') || (position == curr_line->line_length) || (*point == '\0')))
prev_word();
temp_dword = d_word;
temp_dwl = d_wrd_len;
@ -4499,14 +4503,14 @@ Auto_Format() /* format the paragraph according to set margins */
offset -= position;
counter = position;
line = temp1 = point;
while ((*temp1 != (char) NULL) && (*temp1 != ' ') && (*temp1 != '\t') && (counter < curr_line->line_length))
while ((*temp1 != '\0') && (*temp1 != ' ') && (*temp1 != '\t') && (counter < curr_line->line_length))
{
*temp2 = *temp1;
temp2++;
temp1++;
counter++;
}
*temp2 = (char) NULL;
*temp2 = '\0';
if (position != 1)
bol();
while (!Blank_Line(curr_line->prev_line))
@ -4808,9 +4812,9 @@ char * string, *substring;
{
char *full, *sub;
for (sub = substring; (sub != NULL) && (*sub != (char)NULL); sub++)
for (sub = substring; (sub != NULL) && (*sub != '\0'); sub++)
{
for (full = string; (full != NULL) && (*full != (char)NULL);
for (full = string; (full != NULL) && (*full != '\0');
full++)
{
if (*sub == *full)
@ -4853,7 +4857,7 @@ char *name;
slash = strchr(name, '/');
if (slash == NULL)
return(name);
*slash = (char) NULL;
*slash = '\0';
user = (struct passwd *) getpwnam((name + 1));
*slash = '/';
}
@ -4873,10 +4877,10 @@ char *name;
tmp = buffer;
index = 0;
while ((*tmp != (char) NULL) && (index < 1024))
while ((*tmp != '\0') && (index < 1024))
{
while ((*tmp != (char) NULL) && (*tmp != '$') &&
while ((*tmp != '\0') && (*tmp != '$') &&
(index < 1024))
{
long_buffer[index] = *tmp;
@ -4892,7 +4896,7 @@ char *name;
if (*tmp == '{') /* } */ /* bracketed variable name */
{
tmp++; /* { */
while ((*tmp != (char) NULL) &&
while ((*tmp != '\0') &&
(*tmp != '}') &&
(counter < 128))
{
@ -4905,7 +4909,7 @@ char *name;
}
else
{
while ((*tmp != (char) NULL) &&
while ((*tmp != '\0') &&
(*tmp != '/') &&
(*tmp != '$') &&
(counter < 128))
@ -4915,7 +4919,7 @@ char *name;
tmp++;
}
}
short_buffer[counter] = (char) NULL;
short_buffer[counter] = '\0';
if ((slash = getenv(short_buffer)) != NULL)
{
offset = strlen(slash);
@ -4938,7 +4942,7 @@ char *name;
if (index == 1024)
return(buffer);
else
long_buffer[index] = (char) NULL;
long_buffer[index] = '\0';
if (name != buffer)
free(buffer);

View File

@ -2,5 +2,5 @@
| provide a version number for ee
*/
#define EE_VERSION "1.4.6"
#define EE_VERSION "1.4.7"
#define DATE_STRING "$Date: 2002/09/21 00:50:54 $"

View File

@ -5,43 +5,41 @@
|
| written by Hugh Mahon
|
| THIS MATERIAL IS PROVIDED "AS IS". THERE ARE
| NO WARRANTIES OF ANY KIND WITH REGARD TO THIS
| MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE
| IMPLIED WARRANTIES OF MERCHANTABILITY AND
| FITNESS FOR A PARTICULAR PURPOSE. Neither
| Hewlett-Packard nor Hugh Mahon shall be liable
| for errors contained herein, nor for
| incidental or consequential damages in
| connection with the furnishing, performance or
| use of this material. Neither Hewlett-Packard
| nor Hugh Mahon assumes any responsibility for
| the use or reliability of this software or
| documentation. This software and
| documentation is totally UNSUPPORTED. There
| is no support contract available. Hewlett-
| Packard has done NO Quality Assurance on ANY
| of the program or documentation. You may find
| the quality of the materials inferior to
| supported materials.
| Copyright (c) 1986, 1987, 1988, 1991, 1992, 1993, 1994, 1995, 2009 Hugh Mahon
| All rights reserved.
|
| Redistribution and use in source and binary forms, with or without
| modification, are permitted provided that the following conditions
| are met:
|
| * Redistributions of source code must retain the above copyright
| notice, this list of conditions and the following disclaimer.
| * Redistributions in binary form must reproduce the above
| copyright notice, this list of conditions and the following
| disclaimer in the documentation and/or other materials provided
| with the distribution.
|
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
| FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
| COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
| INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
| BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
| LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
| CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
| LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
| ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
| POSSIBILITY OF SUCH DAMAGE.
|
| This software is not a product of Hewlett-Packard, Co., or any
| other company. No support is implied or offered with this software.
| You've got the source, and you're on your own.
|
| This software may be distributed under the terms of Larry Wall's
| Artistic license, a copy of which is included in this distribution.
|
| This notice must be included with this software and any derivatives.
|
| Copyright (c) 1986, 1987, 1988, 1991, 1992, 1993, 1994, 1995 Hugh Mahon
|
| All are rights reserved.
|
| $Header: /home/hugh/sources/old_ae/RCS/new_curse.c,v 1.54 2002/09/21 00:47:14 hugh Exp $
|
*/
char *copyright_message[] = { "Copyright (c) 1986, 1987, 1988, 1991, 1992, 1993, 1994, 1995 Hugh Mahon",
char *copyright_message[] = { "Copyright (c) 1986, 1987, 1988, 1991, 1992, 1993, 1994, 1995, 2009 Hugh Mahon",
"All rights are reserved."};
char * new_curse_name= "@(#) new_curse.c $Revision: 1.54 $";
@ -1113,7 +1111,7 @@ INFO_PARSE() /* parse off the data in the terminfo data file */
Num_bools--;
Booleans[counter++] = *TERM_data_ptr++;
}
if (((unsigned int) TERM_data_ptr) & 1) /* force alignment */
if ((unsigned long)TERM_data_ptr & 1) /* force alignment */
TERM_data_ptr++;
counter = 0;
while (Num_ints)
@ -1476,13 +1474,13 @@ int columns;
for (i = 0; i < columns; i++)
{
tmp->row[i] = ' ';
tmp->attributes[i] = (char) NULL;
tmp->attributes[i] = '\0';
}
tmp->scroll = tmp->changed = FALSE;
tmp->row[0] = (char) NULL;
tmp->attributes[0] = (char) NULL;
tmp->row[columns] = (char) NULL;
tmp->attributes[columns] = (char) NULL;
tmp->row[0] = '\0';
tmp->attributes[0] = '\0';
tmp->row[columns] = '\0';
tmp->attributes[columns] = '\0';
tmp->last_char = 0;
return(tmp);
}
@ -1867,7 +1865,7 @@ int place;
}
delay = 0;
Otemp = string;
while (*Otemp != (char) NULL)
while (*Otemp != '\0')
{
if (*Otemp == '%')
{
@ -1885,7 +1883,7 @@ int place;
| find the end of the
| conditional statement
*/
while ((strncmp(Otemp, "%t", 2)) && (*Otemp != (char) NULL))
while ((strncmp(Otemp, "%t", 2)) && (*Otemp != '\0'))
{
/*
| move past '%'
@ -1913,12 +1911,12 @@ int place;
| find 'else' or end
| of if statement
*/
while ((strncmp(Otemp, "%e", 2)) && (strncmp(Otemp, "%;", 2)) && (*Otemp != (char) NULL))
while ((strncmp(Otemp, "%e", 2)) && (strncmp(Otemp, "%;", 2)) && (*Otemp != '\0'))
Otemp++;
/*
| if an 'else' found
*/
if ((*Otemp != (char) NULL) && (!strncmp(Otemp, "%e", 2)))
if ((*Otemp != '\0') && (!strncmp(Otemp, "%e", 2)))
{
Otemp++;
Otemp++;
@ -1926,12 +1924,12 @@ int place;
/*
| check for 'then' part
*/
while ((*tchar != (char) NULL) && (strncmp(tchar, "%t", 2)) && (strncmp(tchar, "%;", 2)))
while ((*tchar != '\0') && (strncmp(tchar, "%t", 2)) && (strncmp(tchar, "%;", 2)))
tchar++;
/*
| if end of string
*/
if (*tchar == (char) NULL)
if (*tchar == '\0')
{
EVAL = FALSE;
Cond_FLAG = FALSE;
@ -1955,7 +1953,7 @@ int place;
| get out of if
| statement
*/
else if ((*Otemp != (char) NULL) && (!strncmp(Otemp, "%;", 2)))
else if ((*Otemp != '\0') && (!strncmp(Otemp, "%;", 2)))
{
EVAL = FALSE;
Otemp++;
@ -1975,9 +1973,9 @@ int place;
Cond_FLAG = FALSE;
if (*Otemp != ';')
{
while ((*Otemp != (char) NULL) && (strncmp(Otemp, "%;", 2)))
while ((*Otemp != '\0') && (strncmp(Otemp, "%;", 2)))
Otemp++;
if (*Otemp != (char) NULL)
if (*Otemp != '\0')
{
Otemp++;
Otemp++;
@ -2046,12 +2044,12 @@ int cols;
for (j = line->last_char; j < column; j++)
{
line->row[j] = ' ';
line->attributes[j] = (char) NULL;
line->attributes[j] = '\0';
}
}
line->last_char = column;
line->row[column] = (char) NULL;
line->attributes[column] = (char) NULL;
line->row[column] = '\0';
line->attributes[column] = '\0';
line->changed = TRUE;
}
@ -2183,14 +2181,14 @@ WINDOW *window;
virt_col++, user_col++)
{
virtual_line->row[virt_col] = ' ';
virtual_line->attributes[virt_col] = (char) NULL;
virtual_line->attributes[virt_col] = '\0';
}
}
if (virtual_scr->Num_cols != window->Num_cols)
{
if (virtual_line->last_char < (user_line->last_char + window->SC))
{
if (virtual_line->row[virtual_line->last_char] == (char) NULL)
if (virtual_line->row[virtual_line->last_char] == '\0')
virtual_line->row[virtual_line->last_char] = ' ';
virtual_line->last_char =
min(virtual_scr->Num_cols,
@ -2199,7 +2197,7 @@ WINDOW *window;
}
else
virtual_line->last_char = user_line->last_char;
virtual_line->row[virtual_line->last_char] = (char) NULL;
virtual_line->row[virtual_line->last_char] = '\0';
virtual_line->changed = user_line->changed;
virtual_line = virtual_line->next_screen;
user_line = user_line->next_screen;
@ -2344,7 +2342,7 @@ int first_char; /* first character of sequence */
Count = 0;
Gtemp = string;
string[Count++] = first_char;
string[Count] = (char) NULL;
string[Count] = '\0';
Time_Out = FALSE;
#ifndef BSD_SELECT
signal(SIGALRM, Clear);
@ -2368,7 +2366,7 @@ fflush(stderr);
if (in_char != -1)
{
string[Count++] = in_char;
string[Count] = (char) NULL;
string[Count] = '\0';
St_point = KEY_TOS;
while ((St_point != NULL) && (!Found))
{
@ -2454,10 +2452,10 @@ int c;
for (j = tmpline->last_char; j < column; j++)
{
tmpline->row[j] = ' ';
tmpline->attributes[j] = (char) NULL;
tmpline->attributes[j] = '\0';
}
tmpline->row[column + 1] = (char) NULL;
tmpline->attributes[column + 1] = (char) NULL;
tmpline->row[column + 1] = '\0';
tmpline->attributes[column + 1] = '\0';
tmpline->last_char = column + 1;
}
}
@ -2635,7 +2633,7 @@ char *string;
{
char *wstring;
for (wstring = string; *wstring != (char) NULL; wstring++)
for (wstring = string; *wstring != '\0'; wstring++)
waddch(window, *wstring);
}
@ -2713,7 +2711,7 @@ noraw() /* set to normal character read mode */
Terminal.c_lflag |= ICANON; /* enable canonical operation */
Terminal.c_lflag |= ISIG; /* enable signal checking */
Terminal.c_cc[VEOF] = 4; /* EOF character = 4 */
Terminal.c_cc[VEOL] = (char) NULL; /* EOL = 0 */
Terminal.c_cc[VEOL] = '\0'; /* EOL = 0 */
Terminal.c_cc[VINTR] = Intr; /* reset interrupt char */
value = ioctl(0, TCSETA, &Terminal); /* set characteristics */
#else
@ -2881,7 +2879,7 @@ wprintw(WINDOW *window, const char *format, ...)
#endif /* __STDC__ */
fpoint = (char *) format;
while (*fpoint != (char) NULL)
while (*fpoint != '\0')
{
if (*fpoint == '%')
{
@ -2958,12 +2956,12 @@ struct _line *line2;
att1 = line1->attributes;
att2 = line2->attributes;
i = 0;
while ((c1[i] != (char) NULL) && (c2[i] != (char) NULL) && (c1[i] == c2[i]) && (att1[i] == att2[i]))
while ((c1[i] != '\0') && (c2[i] != '\0') && (c1[i] == c2[i]) && (att1[i] == att2[i]))
i++;
count1 = i + 1;
if ((count1 == 1) && (c1[i] == (char) NULL) && (c2[i] == (char) NULL))
if ((count1 == 1) && (c1[i] == '\0') && (c2[i] == '\0'))
count1 = 0; /* both lines blank */
else if ((c1[i] == (char) NULL) && (c2[i] == (char) NULL))
else if ((c1[i] == '\0') && (c2[i] == '\0'))
count1 = -1; /* equal */
else
count1 = 1; /* lines unequal */
@ -3116,9 +3114,9 @@ int row, column;
for (x = column; x<window->Num_cols; x++)
{
tmp1->row[x] = ' ';
tmp1->attributes[x] = (char) NULL;
tmp1->attributes[x] = '\0';
}
tmp1->row[column] = (char) NULL;
tmp1->row[column] = '\0';
tmp1->last_char = column;
if (column < COLS)
{
@ -3160,16 +3158,16 @@ struct _line *pointer_new, *pointer_old;
old_lin = pointer_old->row;
old_att = pointer_old->attributes;
end_old = end_new = offset;
while (((new_lin[end_new] != old_lin[end_old]) || (new_att[end_new] != old_att[end_old])) && (old_lin[end_old] != (char) NULL) && (new_lin[end_old] != (char) NULL))
while (((new_lin[end_new] != old_lin[end_old]) || (new_att[end_new] != old_att[end_old])) && (old_lin[end_old] != '\0') && (new_lin[end_old] != '\0'))
end_old++;
if (old_lin[end_old] != (char) NULL)
if (old_lin[end_old] != '\0')
{
k = 0;
while ((old_lin[end_old+k] == new_lin[end_new+k]) && (new_att[end_new+k] == old_att[end_old+k]) && (new_lin[end_new+k] != (char) NULL) && (old_lin[end_old+k] != (char) NULL) && (k < 10))
while ((old_lin[end_old+k] == new_lin[end_new+k]) && (new_att[end_new+k] == old_att[end_old+k]) && (new_lin[end_new+k] != '\0') && (old_lin[end_old+k] != '\0') && (k < 10))
k++;
if ((k > 8) || ((new_lin[end_new+k] == (char) NULL) && (k != 0)))
if ((k > 8) || ((new_lin[end_new+k] == '\0') && (k != 0)))
{
if (new_lin[end_new+k] == (char) NULL)
if (new_lin[end_new+k] == '\0')
{
Position(window, line, (end_new+k));
CLEAR_TO_EOL(window, line, (end_new+k));
@ -3177,7 +3175,7 @@ struct _line *pointer_new, *pointer_old;
Position(window, line, offset);
for (k = offset; k < end_old; k++)
Char_del(old_lin, old_att, offset, window->Num_cols);
while ((old_lin[offset] != (char) NULL) && (offset < COLS))
while ((old_lin[offset] != '\0') && (offset < COLS))
offset++;
pointer_old->last_char = offset;
changed = TRUE;
@ -3214,12 +3212,12 @@ struct _line *pointer_new, *pointer_old;
old_lin = pointer_old->row;
old_att = pointer_old->attributes;
end_old = end_new = offset;
while (((new_lin[end_new] != old_lin[end_old]) || (new_att[end_new] != old_att[end_old])) && (new_lin[end_new] != (char) NULL) && (old_lin[end_new] != (char) NULL))
while (((new_lin[end_new] != old_lin[end_old]) || (new_att[end_new] != old_att[end_old])) && (new_lin[end_new] != '\0') && (old_lin[end_new] != '\0'))
end_new++;
if (new_lin[end_new] != (char) NULL)
if (new_lin[end_new] != '\0')
{
k = 0;
while ((old_lin[end_old+k] == new_lin[end_new+k]) && (old_att[end_old+k] == new_att[end_new+k]) && (new_lin[end_new+k] != (char) NULL) && (old_lin[end_old+k] != (char) NULL) && (k < 10))
while ((old_lin[end_old+k] == new_lin[end_new+k]) && (old_att[end_old+k] == new_att[end_new+k]) && (new_lin[end_new+k] != '\0') && (old_lin[end_old+k] != '\0') && (k < 10))
k++;
/*
| check for commonality between rest of lines (are the old
@ -3227,11 +3225,11 @@ struct _line *pointer_new, *pointer_old;
| if the rest of the lines are common, do not insert text
*/
old_off = end_new;
while ((old_lin[old_off] != (char) NULL) && (new_lin[old_off] != (char) NULL) && (old_lin[old_off] == new_lin[old_off]) && (old_att[old_off] == new_att[old_off]))
while ((old_lin[old_off] != '\0') && (new_lin[old_off] != '\0') && (old_lin[old_off] == new_lin[old_off]) && (old_att[old_off] == new_att[old_off]))
old_off++;
if ((old_lin[old_off] == new_lin[old_off]) && (old_att[old_off] == new_att[old_off]))
same = TRUE;
if ((!same) && ((k > 8) || ((new_lin[end_new+k] == (char) NULL) && (k != 0))))
if ((!same) && ((k > 8) || ((new_lin[end_new+k] == '\0') && (k != 0))))
{
Position(window, line, offset);
insert = FALSE;
@ -3248,7 +3246,7 @@ struct _line *pointer_new, *pointer_old;
}
if (insert)
String_Out(String_table[ei__], NULL, 0);
while ((old_lin[offset] != (char) NULL) && (offset < COLS))
while ((old_lin[offset] != '\0') && (offset < COLS))
offset++;
pointer_old->last_char = offset;
changed = TRUE;
@ -3319,7 +3317,7 @@ doupdate()
for (from_top = 0, curr = curscr->first_line; from_top < curscr->Num_lines; from_top++, curr = curr->next_screen)
{
Position(curscr, from_top, 0);
for (j = 0; (curr->row[j] != (char) NULL) && (j < curscr->Num_cols); j++)
for (j = 0; (curr->row[j] != '\0') && (j < curscr->Num_cols); j++)
{
Char_out(curr->row[j], curr->attributes[j], curr->row, curr->attributes, j);
}
@ -3541,7 +3539,7 @@ doupdate()
*/
if (((String_table[ic__]) || (String_table[im__])) &&
(String_table[dc__]) && (curr->row[0] != (char) NULL) &&
(String_table[dc__]) && (curr->row[0] != '\0') &&
(!NC_chinese))
{
j = 0;
@ -3550,11 +3548,11 @@ doupdate()
vrt_att = virt->attributes;
cur_lin = curr->row;
cur_att = curr->attributes;
while ((vrt_lin[j] != (char) NULL) && (j < window->Num_cols))
while ((vrt_lin[j] != '\0') && (j < window->Num_cols))
{
if ((STAND) && (Booleans[xs__]))
{
while ((vrt_lin[j] == cur_lin[j]) && (vrt_att[j] == cur_att[j]) && (vrt_lin[j] != (char) NULL) && (vrt_att[j]))
while ((vrt_lin[j] == cur_lin[j]) && (vrt_att[j] == cur_att[j]) && (vrt_lin[j] != '\0') && (vrt_att[j]))
j++;
if ((STAND) && (!vrt_att[j]))
{
@ -3566,7 +3564,7 @@ doupdate()
}
else
{
while ((vrt_lin[j] == cur_lin[j]) && (vrt_att[j] == cur_att[j]) && (vrt_lin[j] != (char) NULL))
while ((vrt_lin[j] == cur_lin[j]) && (vrt_att[j] == cur_att[j]) && (vrt_lin[j] != '\0'))
j++;
}
if ((vrt_att[j] != cur_att[j]) && (cur_att[j]) && (Booleans[xs__]))
@ -3576,7 +3574,7 @@ doupdate()
attribute_off();
attribute_off();
}
if (vrt_lin[j] != (char) NULL)
if (vrt_lin[j] != '\0')
{
begin_new = j;
begin_old = j;
@ -3594,7 +3592,7 @@ doupdate()
changed = check_insert(window, from_top, j, virt, curr);
if (((!changed) || (cur_lin[j] != vrt_lin[j]) || (cur_att[j] != vrt_att[j])) && (j < window->Num_cols))
{
if ((vrt_lin[j] == ' ') && (cur_lin[j] == (char) NULL) && (vrt_att[j] == cur_att[j]))
if ((vrt_lin[j] == ' ') && (cur_lin[j] == '\0') && (vrt_att[j] == cur_att[j]))
cur_lin[j] = ' ';
else
{
@ -3602,7 +3600,7 @@ doupdate()
Char_out(vrt_lin[j], vrt_att[j], cur_lin, cur_att, j);
}
}
if ((vrt_lin[j] != (char) NULL))
if ((vrt_lin[j] != '\0'))
j++;
}
if ((STAND) && (!vrt_att[j]))
@ -3612,7 +3610,7 @@ doupdate()
attribute_off();
}
}
if ((vrt_lin[j] == (char) NULL) && (cur_lin[j] != (char) NULL))
if ((vrt_lin[j] == '\0') && (cur_lin[j] != '\0'))
{
Position(window, from_top, j);
CLEAR_TO_EOL(window, from_top, j);
@ -3625,9 +3623,9 @@ doupdate()
att1 = curr->attributes;
c2 = virt->row;
att2 = virt->attributes;
while ((j < window->Num_cols) && (c2[j] != (char) NULL))
while ((j < window->Num_cols) && (c2[j] != '\0'))
{
while ((c1[j] == c2[j]) && (att1[j] == att2[j]) && (j < window->Num_cols) && (c2[j] != (char) NULL))
while ((c1[j] == c2[j]) && (att1[j] == att2[j]) && (j < window->Num_cols) && (c2[j] != '\0'))
j++;
/*
@ -3639,16 +3637,16 @@ doupdate()
j--;
begin_old = j;
begin_new = j;
if ((j < window->Num_cols) && (c2[j] != (char) NULL))
if ((j < window->Num_cols) && (c2[j] != '\0'))
{
Position(window, from_top, begin_old);
CLEAR_TO_EOL(window, from_top, j);
Position(window, from_top, begin_old);
for (j = begin_old; (c2[j] != (char) NULL) && (j < window->Num_cols); j++)
for (j = begin_old; (c2[j] != '\0') && (j < window->Num_cols); j++)
Char_out(c2[j], att2[j], c1, att1, j);
}
}
if ((c2[j] == (char) NULL) && (c1[j] != (char) NULL))
if ((c2[j] == '\0') && (c1[j] != '\0'))
{
Position(window, from_top, j);
CLEAR_TO_EOL(window, from_top, j);
@ -3704,7 +3702,7 @@ int maxlen;
{
int one, two;
for (one = offset, two = offset+1; (line[one] != (char) NULL) && (one < maxlen); one++, two++)
for (one = offset, two = offset+1; (line[one] != '\0') && (one < maxlen); one++, two++)
{
line[one] = line[two];
attrib[one] = attrib[two];
@ -3724,7 +3722,7 @@ int maxlen;
int one, two;
one = 0;
while ((line[one] != (char) NULL) && (one < (maxlen - 2)))
while ((line[one] != '\0') && (one < (maxlen - 2)))
one++;
for (two = one + 1; (two > offset); one--, two--)
{