diff options
author | Zack Weinberg <zack@wolery.cumb.org> | 2000-01-30 18:09:07 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2000-01-30 18:09:07 +0000 |
commit | a73ac7a5686a2825ee6ec5cb354036087dd71ac2 (patch) | |
tree | 93b0942480e54c7d362a06f1e69935e1f0bb89dc /gcc/cppfiles.c | |
parent | bb4cd7083065ce5d003659b786383ab75a2cfb94 (diff) | |
download | gcc-a73ac7a5686a2825ee6ec5cb354036087dd71ac2.zip gcc-a73ac7a5686a2825ee6ec5cb354036087dd71ac2.tar.gz gcc-a73ac7a5686a2825ee6ec5cb354036087dd71ac2.tar.bz2 |
cppfiles.c (find_position): Drop 'colp' argument, return the new line base.
* cppfiles.c (find_position): Drop 'colp' argument, return the
new line base.
(read_and_prescan): Adjust to match. Don't ever manipulate
line or line_base except via find_position.
From-SVN: r31700
Diffstat (limited to 'gcc/cppfiles.c')
-rw-r--r-- | gcc/cppfiles.c | 60 |
1 files changed, 31 insertions, 29 deletions
diff --git a/gcc/cppfiles.c b/gcc/cppfiles.c index 95f1196..a89a0ca 100644 --- a/gcc/cppfiles.c +++ b/gcc/cppfiles.c @@ -34,23 +34,22 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. static struct include_hash *redundant_include_p PARAMS ((cpp_reader *, - struct include_hash *, - struct file_name_list *)); -static struct file_name_map *read_name_map PARAMS ((cpp_reader *, - const char *)); + struct include_hash *, + struct file_name_list *)); +static struct file_name_map *read_name_map + PARAMS ((cpp_reader *, const char *)); static char *read_filename_string PARAMS ((int, FILE *)); static char *remap_filename PARAMS ((cpp_reader *, char *, - struct file_name_list *)); + struct file_name_list *)); static long read_and_prescan PARAMS ((cpp_reader *, cpp_buffer *, - int, size_t)); -static struct file_name_list *actual_directory PARAMS ((cpp_reader *, - const char *)); + int, size_t)); +static struct file_name_list *actual_directory + PARAMS ((cpp_reader *, const char *)); static void initialize_input_buffer PARAMS ((cpp_reader *, int, - struct stat *)); + struct stat *)); static int file_cleanup PARAMS ((cpp_buffer *, cpp_reader *)); -static void find_position PARAMS ((U_CHAR *, U_CHAR *, - unsigned long *, - unsigned long *)); +static U_CHAR *find_position PARAMS ((U_CHAR *, U_CHAR *, + unsigned long *)); #if 0 static void hack_vms_include_specification PARAMS ((char *)); @@ -772,23 +771,25 @@ actual_directory (pfile, fname) } /* Determine the current line and column. Used only by read_and_prescan. */ -static void -find_position (start, limit, linep, colp) +static U_CHAR * +find_position (start, limit, linep) U_CHAR *start; U_CHAR *limit; unsigned long *linep; - unsigned long *colp; { - unsigned long line = *linep, col = 0; + unsigned long line = *linep; + U_CHAR *lbase = start; while (start < limit) { U_CHAR ch = *start++; if (ch == '\n' || ch == '\r') - line++, col = 1; - else - col++; + { + line++; + lbase = start; + } } - *linep = line, *colp = col; + *linep = line; + return lbase; } /* Read the entire contents of file DESC into buffer BUF. LEN is how @@ -950,8 +951,6 @@ read_and_prescan (pfile, fp, desc, len) *op++ = '\r'; else deferred_newlines++; - line++; - line_base = op; } else if (*ip == '\r') { @@ -967,8 +966,6 @@ read_and_prescan (pfile, fp, desc, len) *op++ = '\r'; else deferred_newlines++; - line++; - line_base = op; } else *op++ = '\\'; @@ -1023,10 +1020,14 @@ read_and_prescan (pfile, fp, desc, len) if (CPP_OPTIONS (pfile)->warn_trigraphs) { unsigned long col; - find_position (line_base, op, &line, &col); - line_base = op - col; - cpp_warning_with_line (pfile, line, col, - "trigraph ??%c encountered", d); + line_base = find_position (line_base, op, &line); + col = op - line_base + 1; + if (CPP_OPTIONS (pfile)->trigraphs) + cpp_warning_with_line (pfile, line, col, + "trigraph ??%c converted to %c", d, t); + else + cpp_warning_with_line (pfile, line, col, + "trigraph ??%c ignored", d); } if (CPP_OPTIONS (pfile)->trigraphs) { @@ -1075,7 +1076,8 @@ read_and_prescan (pfile, fp, desc, len) if (op[-1] != '\n') { unsigned long col; - find_position (line_base, op, &line, &col); + line_base = find_position (line_base, op, &line); + col = op - line_base + 1; cpp_warning_with_line (pfile, line, col, "no newline at end of file\n"); if (offset + 1 > len) { |