mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-07 13:14:51 +00:00
Resolve conflicts; Update defines.h to reflect latest change.
This commit is contained in:
parent
e82bf08b85
commit
423c5ce59d
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=173685
@ -557,6 +557,21 @@ mca_char(c)
|
|||||||
return (MCA_MORE);
|
return (MCA_MORE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Discard any buffered file data.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
clear_buffers()
|
||||||
|
{
|
||||||
|
if (!(ch_getflags() & CH_CANSEEK))
|
||||||
|
return;
|
||||||
|
ch_flush();
|
||||||
|
clr_linenum();
|
||||||
|
#if HILITE_SEARCH
|
||||||
|
clr_hilite();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Make sure the screen is displayed.
|
* Make sure the screen is displayed.
|
||||||
*/
|
*/
|
||||||
@ -580,11 +595,20 @@ make_display()
|
|||||||
jump_loc(initial_scrpos.pos, initial_scrpos.ln);
|
jump_loc(initial_scrpos.pos, initial_scrpos.ln);
|
||||||
} else if (screen_trashed)
|
} else if (screen_trashed)
|
||||||
{
|
{
|
||||||
int save_top_scroll;
|
int save_top_scroll = top_scroll;
|
||||||
save_top_scroll = top_scroll;
|
int save_ignore_eoi = ignore_eoi;
|
||||||
top_scroll = 1;
|
top_scroll = 1;
|
||||||
|
ignore_eoi = 0;
|
||||||
|
if (screen_trashed == 2)
|
||||||
|
{
|
||||||
|
/* Special case used by ignore_eoi: re-open the input file
|
||||||
|
* and jump to the end of the file. */
|
||||||
|
reopen_curr_ifile();
|
||||||
|
jump_forw();
|
||||||
|
}
|
||||||
repaint();
|
repaint();
|
||||||
top_scroll = save_top_scroll;
|
top_scroll = save_top_scroll;
|
||||||
|
ignore_eoi = save_ignore_eoi;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1115,7 +1139,10 @@ commands()
|
|||||||
ignore_eoi = 1;
|
ignore_eoi = 1;
|
||||||
hit_eof = 0;
|
hit_eof = 0;
|
||||||
while (!sigs)
|
while (!sigs)
|
||||||
|
{
|
||||||
|
make_display();
|
||||||
forward(1, 0, 0);
|
forward(1, 0, 0);
|
||||||
|
}
|
||||||
ignore_eoi = 0;
|
ignore_eoi = 0;
|
||||||
/*
|
/*
|
||||||
* This gets us back in "F mode" after processing
|
* This gets us back in "F mode" after processing
|
||||||
@ -1154,14 +1181,7 @@ commands()
|
|||||||
* Flush buffers, then repaint screen.
|
* Flush buffers, then repaint screen.
|
||||||
* Don't flush the buffers on a pipe!
|
* Don't flush the buffers on a pipe!
|
||||||
*/
|
*/
|
||||||
if (ch_getflags() & CH_CANSEEK)
|
clear_buffers();
|
||||||
{
|
|
||||||
ch_flush();
|
|
||||||
clr_linenum();
|
|
||||||
#if HILITE_SEARCH
|
|
||||||
clr_hilite();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
/* FALLTHRU */
|
/* FALLTHRU */
|
||||||
case A_REPAINT:
|
case A_REPAINT:
|
||||||
/*
|
/*
|
||||||
@ -1263,7 +1283,8 @@ commands()
|
|||||||
/*
|
/*
|
||||||
* Define abbreviation for a commonly used sequence below.
|
* Define abbreviation for a commonly used sequence below.
|
||||||
*/
|
*/
|
||||||
#define DO_SEARCH() if (number <= 0) number = 1; \
|
#define DO_SEARCH() \
|
||||||
|
if (number <= 0) number = 1; \
|
||||||
mca_search(); \
|
mca_search(); \
|
||||||
cmd_exec(); \
|
cmd_exec(); \
|
||||||
multi_search((char *)NULL, (int) number);
|
multi_search((char *)NULL, (int) number);
|
||||||
|
@ -72,6 +72,9 @@
|
|||||||
#if HAVE_CTYPE_H
|
#if HAVE_CTYPE_H
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#endif
|
#endif
|
||||||
|
#if HAVE_WCTYPE_H
|
||||||
|
#include <wctype.h>
|
||||||
|
#endif
|
||||||
#if HAVE_LIMITS_H
|
#if HAVE_LIMITS_H
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#endif
|
#endif
|
||||||
@ -126,16 +129,23 @@ void free();
|
|||||||
#undef IS_SPACE
|
#undef IS_SPACE
|
||||||
#undef IS_DIGIT
|
#undef IS_DIGIT
|
||||||
|
|
||||||
#if !HAVE_UPPER_LOWER
|
#if HAVE_WCTYPE
|
||||||
#define IS_UPPER(c) ASCII_IS_UPPER(c)
|
#define IS_UPPER(c) iswupper(c)
|
||||||
#define IS_LOWER(c) ASCII_IS_LOWER(c)
|
#define IS_LOWER(c) iswlower(c)
|
||||||
#define TO_UPPER(c) ASCII_TO_UPPER(c)
|
#define TO_UPPER(c) towupper(c)
|
||||||
#define TO_LOWER(c) ASCII_TO_LOWER(c)
|
#define TO_LOWER(c) towlower(c)
|
||||||
#else
|
#else
|
||||||
|
#if HAVE_UPPER_LOWER
|
||||||
#define IS_UPPER(c) isupper((unsigned char) (c))
|
#define IS_UPPER(c) isupper((unsigned char) (c))
|
||||||
#define IS_LOWER(c) islower((unsigned char) (c))
|
#define IS_LOWER(c) islower((unsigned char) (c))
|
||||||
#define TO_UPPER(c) toupper((unsigned char) (c))
|
#define TO_UPPER(c) toupper((unsigned char) (c))
|
||||||
#define TO_LOWER(c) tolower((unsigned char) (c))
|
#define TO_LOWER(c) tolower((unsigned char) (c))
|
||||||
|
#else
|
||||||
|
#define IS_UPPER(c) ASCII_IS_UPPER(c)
|
||||||
|
#define IS_LOWER(c) ASCII_IS_LOWER(c)
|
||||||
|
#define TO_UPPER(c) ASCII_TO_UPPER(c)
|
||||||
|
#define TO_LOWER(c) ASCII_TO_LOWER(c)
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef isspace
|
#ifdef isspace
|
||||||
@ -188,6 +198,13 @@ void free();
|
|||||||
|
|
||||||
#define BAD_LSEEK ((off_t)-1)
|
#define BAD_LSEEK ((off_t)-1)
|
||||||
|
|
||||||
|
#ifndef SEEK_SET
|
||||||
|
#define SEEK_SET 0
|
||||||
|
#endif
|
||||||
|
#ifndef SEEK_END
|
||||||
|
#define SEEK_END 2
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef CHAR_BIT
|
#ifndef CHAR_BIT
|
||||||
#define CHAR_BIT 8
|
#define CHAR_BIT 8
|
||||||
#endif
|
#endif
|
||||||
@ -458,6 +475,9 @@ struct textlist
|
|||||||
#define QUIT_ERROR 1
|
#define QUIT_ERROR 1
|
||||||
#define QUIT_SAVED_STATUS (-1)
|
#define QUIT_SAVED_STATUS (-1)
|
||||||
|
|
||||||
|
#define FOLLOW_DESC 0
|
||||||
|
#define FOLLOW_NAME 1
|
||||||
|
|
||||||
/* filestate flags */
|
/* filestate flags */
|
||||||
#define CH_CANSEEK 001
|
#define CH_CANSEEK 001
|
||||||
#define CH_KEEPOPEN 002
|
#define CH_KEEPOPEN 002
|
||||||
|
@ -1048,6 +1048,23 @@ pdone(endline)
|
|||||||
attr[curr] = AT_NORMAL;
|
attr[curr] = AT_NORMAL;
|
||||||
curr++;
|
curr++;
|
||||||
}
|
}
|
||||||
|
else if (ignaw && !auto_wrap && column >= sc_width)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Big horrible kludge.
|
||||||
|
* No-wrap terminals are too hard to deal with when they get in
|
||||||
|
* the state where a full screen width of characters have been
|
||||||
|
* output but the cursor is sitting on the right edge instead
|
||||||
|
* of at the start of the next line.
|
||||||
|
* So after we output a full line, we output an extra
|
||||||
|
* space and backspace to force the cursor to the
|
||||||
|
* beginning of the next line, like a sane terminal.
|
||||||
|
*/
|
||||||
|
linebuf[curr] = ' ';
|
||||||
|
attr[curr++] = AT_NORMAL;
|
||||||
|
linebuf[curr] = '\b';
|
||||||
|
attr[curr++] = AT_NORMAL;
|
||||||
|
}
|
||||||
linebuf[curr] = '\0';
|
linebuf[curr] = '\0';
|
||||||
attr[curr] = AT_NORMAL;
|
attr[curr] = AT_NORMAL;
|
||||||
|
|
||||||
|
@ -1845,11 +1845,15 @@ line_left()
|
|||||||
GetConsoleScreenBufferInfo(con_out, &scr);
|
GetConsoleScreenBufferInfo(con_out, &scr);
|
||||||
row = scr.dwCursorPosition.Y - scr.srWindow.Top + 1;
|
row = scr.dwCursorPosition.Y - scr.srWindow.Top + 1;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
#if MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC
|
||||||
|
row = wherey();
|
||||||
#else
|
#else
|
||||||
{
|
{
|
||||||
struct rccoord tpos = _gettextposition();
|
struct rccoord tpos = _gettextposition();
|
||||||
row = tpos.row;
|
row = tpos.row;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
_settextposition(row, 1);
|
_settextposition(row, 1);
|
||||||
#endif
|
#endif
|
||||||
|
@ -66,6 +66,7 @@ extern int screen_trashed;
|
|||||||
extern int size_linebuf;
|
extern int size_linebuf;
|
||||||
extern int squished;
|
extern int squished;
|
||||||
extern int can_goto_line;
|
extern int can_goto_line;
|
||||||
|
extern int utf_mode;
|
||||||
static int hide_hilite;
|
static int hide_hilite;
|
||||||
static int oldbot;
|
static int oldbot;
|
||||||
static POSITION prep_startpos;
|
static POSITION prep_startpos;
|
||||||
@ -106,14 +107,31 @@ static int is_ucase_pattern;
|
|||||||
static int last_search_type;
|
static int last_search_type;
|
||||||
static char *last_pattern = NULL;
|
static char *last_pattern = NULL;
|
||||||
|
|
||||||
/*
|
|
||||||
* Convert text. Perform one or more of these transformations:
|
|
||||||
*/
|
|
||||||
#define CVT_TO_LC 01 /* Convert upper-case to lower-case */
|
#define CVT_TO_LC 01 /* Convert upper-case to lower-case */
|
||||||
#define CVT_BS 02 /* Do backspace processing */
|
#define CVT_BS 02 /* Do backspace processing */
|
||||||
#define CVT_CRLF 04 /* Remove CR after LF */
|
#define CVT_CRLF 04 /* Remove CR after LF */
|
||||||
#define CVT_ANSI 010 /* Remove ANSI escape sequences */
|
#define CVT_ANSI 010 /* Remove ANSI escape sequences */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get the length of a buffer needed to convert a string.
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
cvt_length(len, ops)
|
||||||
|
int len;
|
||||||
|
int ops;
|
||||||
|
{
|
||||||
|
if (utf_mode && (ops & CVT_TO_LC))
|
||||||
|
/*
|
||||||
|
* Converting case can cause a UTF-8 string to increase in length.
|
||||||
|
* Multiplying by 3 is the worst case.
|
||||||
|
*/
|
||||||
|
len *= 3;
|
||||||
|
return len+1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Convert text. Perform one or more of these transformations:
|
||||||
|
*/
|
||||||
static void
|
static void
|
||||||
cvt_text(odst, osrc, lenp, ops)
|
cvt_text(odst, osrc, lenp, ops)
|
||||||
char *odst;
|
char *odst;
|
||||||
@ -140,7 +158,7 @@ cvt_text(odst, osrc, lenp, ops)
|
|||||||
put_wchar(&dst, TO_LOWER(ch));
|
put_wchar(&dst, TO_LOWER(ch));
|
||||||
} else if ((ops & CVT_BS) && ch == '\b' && dst > odst)
|
} else if ((ops & CVT_BS) && ch == '\b' && dst > odst)
|
||||||
{
|
{
|
||||||
/* Delete BS and preceding char. */
|
/* Delete backspace and preceding char. */
|
||||||
do {
|
do {
|
||||||
dst--;
|
dst--;
|
||||||
} while (dst > odst &&
|
} while (dst > odst &&
|
||||||
@ -363,7 +381,7 @@ undo_search()
|
|||||||
* Compile a search pattern, for future use by match_pattern.
|
* Compile a search pattern, for future use by match_pattern.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
compile_pattern(pattern, search_type)
|
compile_pattern2(pattern, search_type)
|
||||||
char *pattern;
|
char *pattern;
|
||||||
int search_type;
|
int search_type;
|
||||||
{
|
{
|
||||||
@ -442,6 +460,30 @@ compile_pattern(pattern, search_type)
|
|||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Like compile_pattern, but convert the pattern to lowercase if necessary.
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
compile_pattern(pattern, search_type)
|
||||||
|
char *pattern;
|
||||||
|
int search_type;
|
||||||
|
{
|
||||||
|
char *cvt_pattern;
|
||||||
|
int result;
|
||||||
|
|
||||||
|
if (caseless != OPT_ONPLUS)
|
||||||
|
cvt_pattern = pattern;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cvt_pattern = (char*) ecalloc(1, cvt_length(strlen(pattern), CVT_TO_LC));
|
||||||
|
cvt_text(cvt_pattern, pattern, (int *)NULL, CVT_TO_LC);
|
||||||
|
}
|
||||||
|
result = compile_pattern2(cvt_pattern, search_type);
|
||||||
|
if (cvt_pattern != pattern)
|
||||||
|
free(cvt_pattern);
|
||||||
|
return (result);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Forget that we have a compiled pattern.
|
* Forget that we have a compiled pattern.
|
||||||
*/
|
*/
|
||||||
@ -681,35 +723,8 @@ add_hilite(anchor, hl)
|
|||||||
ihl->hl_next = hl;
|
ihl->hl_next = hl;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
adj_hilite_ansi(cvt_ops, line, line_len, npos)
|
|
||||||
int cvt_ops;
|
|
||||||
char **line;
|
|
||||||
int line_len;
|
|
||||||
POSITION *npos;
|
|
||||||
{
|
|
||||||
char *line_end = *line + line_len;
|
|
||||||
|
|
||||||
if (cvt_ops & CVT_ANSI)
|
|
||||||
while (IS_CSI_START(**line))
|
|
||||||
{
|
|
||||||
/*
|
/*
|
||||||
* Found an ESC. The file position moves
|
* Adjust hl_startpos & hl_endpos to account for processing by cvt_text.
|
||||||
* forward past the entire ANSI escape sequence.
|
|
||||||
*/
|
|
||||||
(*line)++;
|
|
||||||
(*npos)++;
|
|
||||||
while (*line < line_end)
|
|
||||||
{
|
|
||||||
(*npos)++;
|
|
||||||
if (!is_ansi_middle(*(*line)++))
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Adjust hl_startpos & hl_endpos to account for backspace processing.
|
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
adj_hilite(anchor, linepos, cvt_ops)
|
adj_hilite(anchor, linepos, cvt_ops)
|
||||||
@ -718,18 +733,21 @@ adj_hilite(anchor, linepos, cvt_ops)
|
|||||||
int cvt_ops;
|
int cvt_ops;
|
||||||
{
|
{
|
||||||
char *line;
|
char *line;
|
||||||
|
char *oline;
|
||||||
int line_len;
|
int line_len;
|
||||||
char *line_end;
|
char *line_end;
|
||||||
struct hilite *hl;
|
struct hilite *hl;
|
||||||
int checkstart;
|
int checkstart;
|
||||||
POSITION opos;
|
POSITION opos;
|
||||||
POSITION npos;
|
POSITION npos;
|
||||||
|
LWCHAR ch;
|
||||||
|
int ncwidth;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The line was already scanned and hilites were added (in hilite_line).
|
* The line was already scanned and hilites were added (in hilite_line).
|
||||||
* But it was assumed that each char position in the line
|
* But it was assumed that each char position in the line
|
||||||
* correponds to one char position in the file.
|
* correponds to one char position in the file.
|
||||||
* This may not be true if there are backspaces in the line.
|
* This may not be true if cvt_text modified the line.
|
||||||
* Get the raw line again. Look at each character.
|
* Get the raw line again. Look at each character.
|
||||||
*/
|
*/
|
||||||
(void) forw_raw_line(linepos, &line, &line_len);
|
(void) forw_raw_line(linepos, &line, &line_len);
|
||||||
@ -760,31 +778,43 @@ adj_hilite(anchor, linepos, cvt_ops)
|
|||||||
}
|
}
|
||||||
if (line == line_end)
|
if (line == line_end)
|
||||||
break;
|
break;
|
||||||
adj_hilite_ansi(cvt_ops, &line, line_end - line, &npos);
|
|
||||||
opos++;
|
/* Get the next char from the line. */
|
||||||
npos++;
|
oline = line;
|
||||||
line++;
|
ch = step_char(&line, +1, line_end);
|
||||||
if (cvt_ops & CVT_BS)
|
ncwidth = line - oline;
|
||||||
|
npos += ncwidth;
|
||||||
|
|
||||||
|
/* Figure out how this char was processed by cvt_text. */
|
||||||
|
if ((cvt_ops & CVT_BS) && ch == '\b')
|
||||||
{
|
{
|
||||||
while (*line == '\b')
|
/* Skip the backspace and the following char. */
|
||||||
|
oline = line;
|
||||||
|
ch = step_char(&line, +1, line_end);
|
||||||
|
ncwidth = line - oline;
|
||||||
|
npos += ncwidth;
|
||||||
|
} else if ((cvt_ops & CVT_TO_LC) && IS_UPPER(ch))
|
||||||
|
{
|
||||||
|
/* Converted uppercase to lower.
|
||||||
|
* Note that this may have changed the number of bytes
|
||||||
|
* that the character occupies. */
|
||||||
|
char dbuf[6];
|
||||||
|
char *dst = dbuf;
|
||||||
|
put_wchar(&dst, TO_LOWER(ch));
|
||||||
|
opos += dst - dbuf;
|
||||||
|
} else if ((cvt_ops & CVT_ANSI) && IS_CSI_START(ch))
|
||||||
|
{
|
||||||
|
/* Skip to end of ANSI escape sequence. */
|
||||||
|
while (line < line_end)
|
||||||
{
|
{
|
||||||
npos++;
|
npos++;
|
||||||
line++;
|
if (!is_ansi_middle(*++line))
|
||||||
adj_hilite_ansi(cvt_ops, &line, line_end - line, &npos);
|
|
||||||
if (line == line_end)
|
|
||||||
{
|
|
||||||
--npos;
|
|
||||||
--line;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/*
|
} else
|
||||||
* Found a backspace. The file position moves
|
{
|
||||||
* forward by 2 relative to the processed line
|
/* Ordinary unprocessed character. */
|
||||||
* which was searched in hilite_line.
|
opos += ncwidth;
|
||||||
*/
|
|
||||||
npos++;
|
|
||||||
line++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1014,6 +1044,7 @@ search_range(pos, endpos, search_type, matches, maxlines, plinepos, pendpos)
|
|||||||
POSITION *pendpos;
|
POSITION *pendpos;
|
||||||
{
|
{
|
||||||
char *line;
|
char *line;
|
||||||
|
char *cline;
|
||||||
int line_len;
|
int line_len;
|
||||||
LINENUM linenum;
|
LINENUM linenum;
|
||||||
char *sp, *ep;
|
char *sp, *ep;
|
||||||
@ -1099,18 +1130,22 @@ search_range(pos, endpos, search_type, matches, maxlines, plinepos, pendpos)
|
|||||||
* If we're doing backspace processing, delete backspaces.
|
* If we're doing backspace processing, delete backspaces.
|
||||||
*/
|
*/
|
||||||
cvt_ops = get_cvt_ops();
|
cvt_ops = get_cvt_ops();
|
||||||
cvt_text(line, line, &line_len, cvt_ops);
|
cline = calloc(1, cvt_length(line_len, cvt_ops));
|
||||||
|
cvt_text(cline, line, &line_len, cvt_ops);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Test the next line to see if we have a match.
|
* Test the next line to see if we have a match.
|
||||||
* We are successful if we either want a match and got one,
|
* We are successful if we either want a match and got one,
|
||||||
* or if we want a non-match and got one.
|
* or if we want a non-match and got one.
|
||||||
*/
|
*/
|
||||||
line_match = match_pattern(line, line_len, &sp, &ep, 0);
|
line_match = match_pattern(cline, line_len, &sp, &ep, 0);
|
||||||
line_match = (!(search_type & SRCH_NO_MATCH) && line_match) ||
|
line_match = (!(search_type & SRCH_NO_MATCH) && line_match) ||
|
||||||
((search_type & SRCH_NO_MATCH) && !line_match);
|
((search_type & SRCH_NO_MATCH) && !line_match);
|
||||||
if (!line_match)
|
if (!line_match)
|
||||||
|
{
|
||||||
|
free(cline);
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
* Got a match.
|
* Got a match.
|
||||||
*/
|
*/
|
||||||
@ -1123,8 +1158,9 @@ search_range(pos, endpos, search_type, matches, maxlines, plinepos, pendpos)
|
|||||||
* hilite list and keep searching.
|
* hilite list and keep searching.
|
||||||
*/
|
*/
|
||||||
if (line_match)
|
if (line_match)
|
||||||
hilite_line(linepos, line, line_len, sp, ep, cvt_ops);
|
hilite_line(linepos, cline, line_len, sp, ep, cvt_ops);
|
||||||
#endif
|
#endif
|
||||||
|
free(cline);
|
||||||
} else if (--matches <= 0)
|
} else if (--matches <= 0)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@ -1140,9 +1176,10 @@ search_range(pos, endpos, search_type, matches, maxlines, plinepos, pendpos)
|
|||||||
*/
|
*/
|
||||||
clr_hilite();
|
clr_hilite();
|
||||||
if (line_match)
|
if (line_match)
|
||||||
hilite_line(linepos, line, line_len, sp, ep, cvt_ops);
|
hilite_line(linepos, cline, line_len, sp, ep, cvt_ops);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
free(cline);
|
||||||
if (plinepos != NULL)
|
if (plinepos != NULL)
|
||||||
*plinepos = linepos;
|
*plinepos = linepos;
|
||||||
return (0);
|
return (0);
|
||||||
@ -1165,9 +1202,6 @@ hist_pattern(search_type)
|
|||||||
if (pattern == NULL)
|
if (pattern == NULL)
|
||||||
return (0);
|
return (0);
|
||||||
|
|
||||||
if (caseless == OPT_ONPLUS)
|
|
||||||
cvt_text(pattern, pattern, (int *)NULL, CVT_TO_LC);
|
|
||||||
|
|
||||||
if (compile_pattern(pattern, search_type) < 0)
|
if (compile_pattern(pattern, search_type) < 0)
|
||||||
return (0);
|
return (0);
|
||||||
|
|
||||||
@ -1204,7 +1238,7 @@ search(search_type, pattern, n)
|
|||||||
int n;
|
int n;
|
||||||
{
|
{
|
||||||
POSITION pos;
|
POSITION pos;
|
||||||
int ucase;
|
int result;
|
||||||
|
|
||||||
if (pattern == NULL || *pattern == '\0')
|
if (pattern == NULL || *pattern == '\0')
|
||||||
{
|
{
|
||||||
@ -1247,16 +1281,13 @@ search(search_type, pattern, n)
|
|||||||
/*
|
/*
|
||||||
* Compile the pattern.
|
* Compile the pattern.
|
||||||
*/
|
*/
|
||||||
ucase = is_ucase(pattern);
|
|
||||||
if (caseless == OPT_ONPLUS)
|
|
||||||
cvt_text(pattern, pattern, (int *)NULL, CVT_TO_LC);
|
|
||||||
if (compile_pattern(pattern, search_type) < 0)
|
if (compile_pattern(pattern, search_type) < 0)
|
||||||
return (-1);
|
return (-1);
|
||||||
/*
|
/*
|
||||||
* Ignore case if -I is set OR
|
* Ignore case if -I is set OR
|
||||||
* -i is set AND the pattern is all lowercase.
|
* -i is set AND the pattern is all lowercase.
|
||||||
*/
|
*/
|
||||||
is_ucase_pattern = ucase;
|
is_ucase_pattern = is_ucase(pattern);
|
||||||
if (is_ucase_pattern && caseless != OPT_ONPLUS)
|
if (is_ucase_pattern && caseless != OPT_ONPLUS)
|
||||||
is_caseless = 0;
|
is_caseless = 0;
|
||||||
else
|
else
|
||||||
|
@ -284,6 +284,9 @@
|
|||||||
/* Define to 1 if you have the `stat' function. */
|
/* Define to 1 if you have the `stat' function. */
|
||||||
#define HAVE_STAT 1
|
#define HAVE_STAT 1
|
||||||
|
|
||||||
|
/* Define HAVE_STAT_INO if your struct stat has st_ino and st_dev. */
|
||||||
|
#define HAVE_STAT_INO 1
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdint.h> header file. */
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
#define HAVE_STDINT_H 1
|
#define HAVE_STDINT_H 1
|
||||||
|
|
||||||
@ -353,6 +356,12 @@
|
|||||||
/* Define HAVE_VOID if your compiler supports the "void" type. */
|
/* Define HAVE_VOID if your compiler supports the "void" type. */
|
||||||
#define HAVE_VOID 1
|
#define HAVE_VOID 1
|
||||||
|
|
||||||
|
/* Define HAVE_WCTYPE if you have iswupper, iswlower, towupper, towlower. */
|
||||||
|
#define HAVE_WCTYPE 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <wctype.h> header file. */
|
||||||
|
#define HAVE_WCTYPE_H 1
|
||||||
|
|
||||||
/* Define to 1 if you have the `_setjmp' function. */
|
/* Define to 1 if you have the `_setjmp' function. */
|
||||||
#define HAVE__SETJMP 1
|
#define HAVE__SETJMP 1
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user