Hi Jean-Marc, Here is my latest followup to the listerrors fixes.
If you have not already done so, please apply this. The backward-porting is important since many people don't have python-2.2 installed as /usr/bin/python. The converter.C patch is important to allow people who have the setting "parselog=listerrors" in their build-program convertor to find "listerrors" without having to set an additional path element outside of LyX. This would mean that the "listerrors" change has no user-visible impact. ---Kayvan -- Kayvan A. Sylvan | Proud husband of | Father to my kids: Sylvan Associates, Inc. | Laura Isabella Sylvan | Katherine Yelena (8/8/89) http://sylvan.com/~kayvan | "crown of her husband" | Robin Gregory (2/28/92)
Index: lib/ChangeLog =================================================================== RCS file: /cvs/lyx/lyx-devel/lib/ChangeLog,v retrieving revision 1.189 diff -u -r1.189 ChangeLog --- lib/ChangeLog 2002/03/21 19:26:18 1.189 +++ lib/ChangeLog 2002/03/21 19:48:24 @@ -6,6 +6,13 @@ * ui/default.ui: Change "What's this?" to "Tooltips". +2002-03-19 Kayvan A. Sylvan <[EMAIL PROTECTED]> + + * examples/listerrors.lyx: Fixed to run with python-1.5 as well + as with latest python-2.2 + + * scripts/listerrors: Re-generated from listerrors.lyx + 2002-03-19 Jean-Marc Lasgouttes <[EMAIL PROTECTED]> * create_fonts_dir: Index: lib/examples/listerrors.lyx =================================================================== RCS file: /cvs/lyx/lyx-devel/lib/examples/listerrors.lyx,v retrieving revision 1.1 diff -u -r1.1 listerrors.lyx --- lib/examples/listerrors.lyx 2002/03/19 21:42:48 1.1 +++ lib/examples/listerrors.lyx 2002/03/21 19:48:24 @@ -259,7 +259,7 @@ \newline \newline -import sys +import sys, string \newline \newline @@ -363,10 +363,8 @@ \newline if lines: \newline - line = lines[-1] + line = lines.pop() \newline - lines = lines[:-1] -\newline else: \newline line = file.readline() @@ -391,7 +389,7 @@ \newline lines = __lines \newline - lines += (line,) # push a list onto the stack, not individual letters + lines.append(line) \newline \newline @@ -509,9 +507,9 @@ <<Look for the unescaped angle-brackets in documentation>>= \newline -if line.find(": unescaped << in documentation chunk") != -1: +if string.find(line, ": unescaped << in documentation chunk") != -1: \newline - line_parts = line.split(':') + line_parts = string.split(line, ':') \newline num_str = line_parts[1] \newline @@ -519,7 +517,7 @@ \newline i = 0 \newline - while i < num_len and num_str[i].isdigit(): i += 1 + while i < num_len and (num_str[i] in string.digits): i = i + 1 \newline if i == num_len: \newline @@ -538,13 +536,13 @@ \newline if (not retval): \newline - left = line.find("<<") + left = string.find(line, "<<") \newline if (left != -1) and ((left + 2) < len(line)) and \backslash \newline - (line[left+2:].find(">>") != -1): + (string.find(line[left+2:], ">>") != -1): \newline write_error(line, "noweb"); \newline @@ -586,7 +584,7 @@ \newline for msg in msgs_to_try: \newline - if line.find(msg) != -1: + if string.find(line, msg) != -1: \newline write_error(line, "noweb") \newline @@ -647,7 +645,7 @@ <<Handle the gcc error message>>= \newline -first_space = line.find(' ') +first_space = string.find(line, ' ') \newline if first_space > 1: # The smallest would be "X: " \newline @@ -661,7 +659,7 @@ \newline num_end = first_space \newline - while next_line[num_end].isdigit(): num_end += 1 + while next_line[num_end] in string.digits: num_end = num_end + 1 \newline if num_end > first_space: # good! \newline @@ -685,12 +683,10 @@ <<Accumulate gcc error lines and print it>>= \newline num_str = next_line[first_space:num_end] -\newline -msgs = [] \newline -msgs += (line[first_space:],) +msgs = [line[first_space:]] \newline -msgs += (next_line[num_end + 1:],) +msgs.append(next_line[num_end + 1:]) \newline header_to_see = next_line[:num_end] \newline @@ -698,7 +694,7 @@ \newline while next_line and next_line[:num_end] == header_to_see: \newline - msgs += (next_line[num_end + 1:],) + msgs.append(next_line[num_end + 1:]) \newline next_line = getline() \newline @@ -754,9 +750,9 @@ \newline if line[0] == '"': # This is the first character of all xlc errors \newline - next_quote = line.find('"', 1) + next_quote = string.find(line, '"', 1) \newline - first_space = line.find(' ') + first_space = string.find(line, ' ') \newline if (next_quote != -1) and (first_space > next_quote): # no space inisde quotes @@ -765,7 +761,7 @@ \newline num_start = num_end = first_space + 6 \newline - while line[num_end].isdigit(): num_end += 1 + while line[num_end] in string.digits: num_end = num_end + 1 \newline if num_end > num_start: \newline Index: lib/scripts/listerrors =================================================================== RCS file: /cvs/lyx/lyx-devel/lib/scripts/listerrors,v retrieving revision 1.1 diff -u -r1.1 listerrors --- lib/scripts/listerrors 2002/03/19 21:42:48 1.1 +++ lib/scripts/listerrors 2002/03/21 19:48:25 @@ -13,7 +13,7 @@ modifications to original listerrors.""" __copyright__ = "Copyright 2002 - The LyX team." -import sys +import sys, string def write_error(msg, tool = "noweb", line_number = 1): """Write out the given message in TeX error style. @@ -37,8 +37,7 @@ global __lines lines = __lines if lines: - line = lines[-1] - lines = lines[:-1] + line = lines.pop() else: line = file.readline() return line @@ -47,7 +46,7 @@ "push a line onto the pushback stack." global __lines lines = __lines - lines += (line,) # push a list onto the stack, not individual letters + lines.append(line) def main(): """Entry point for listerrors. Takes no options. @@ -65,19 +64,19 @@ Returns 1 on success, 0 otherwise. Outputs on stdout.""" retval = 0 - if line.find(": unescaped << in documentation chunk") != -1: - line_parts = line.split(':') + if string.find(line, ": unescaped << in documentation chunk") != -1: + line_parts = string.split(line, ':') num_str = line_parts[1] num_len = len(num_str) i = 0 - while i < num_len and num_str[i].isdigit(): i += 1 + while i < num_len and (num_str[i] in string.digits): i = i + 1 if i == num_len: write_error(":" + line_parts[2], "noweb", int(num_str)) retval = 1 if (not retval): - left = line.find("<<") + left = string.find(line, "<<") if (left != -1) and ((left + 2) < len(line)) and \ - (line[left+2:].find(">>") != -1): + (string.find(line[left+2:], ">>") != -1): write_error(line, "noweb"); retval = 1; if (not retval): @@ -94,7 +93,7 @@ "This can't happen:", "non-numeric line number in") for msg in msgs_to_try: - if line.find(msg) != -1: + if string.find(line, msg) != -1: write_error(line, "noweb") retval = 1 break @@ -105,23 +104,22 @@ Returns 1 on success, 0 otherwise. Outputs on stdout.""" retval = 0 - first_space = line.find(' ') + first_space = string.find(line, ' ') if first_space > 1: # The smallest would be "X: " if line[first_space - 1] == ':': header_to_see = line[:first_space - 1] next_line = getline() if next_line and next_line[:first_space - 1] == header_to_see: num_end = first_space - while next_line[num_end].isdigit(): num_end += 1 + while next_line[num_end] in string.digits: num_end = num_end + 1 if num_end > first_space: # good! num_str = next_line[first_space:num_end] - msgs = [] - msgs += (line[first_space:],) - msgs += (next_line[num_end + 1:],) + msgs = [line[first_space:]] + msgs.append(next_line[num_end + 1:]) header_to_see = next_line[:num_end] next_line = getline() while next_line and next_line[:num_end] == header_to_see: - msgs += (next_line[num_end + 1:],) + msgs.append(next_line[num_end + 1:]) next_line = getline() if next_line: pushline(next_line) write_error(msgs, "gcc", int(num_str)) @@ -138,12 +136,12 @@ Returns 1 on success, 0 otherwise. Outputs on stdout.""" retval = 0 if line[0] == '"': # This is the first character of all xlc errors - next_quote = line.find('"', 1) - first_space = line.find(' ') + next_quote = string.find(line, '"', 1) + first_space = string.find(line, ' ') if (next_quote != -1) and (first_space > next_quote): # no space inisde quotes if line[first_space - 1:first_space + 6] == ", line ": num_start = num_end = first_space + 6 - while line[num_end].isdigit(): num_end += 1 + while line[num_end] in string.digits: num_end = num_end + 1 if num_end > num_start: write_error(line, "xlc", int(line[num_start : num_end])) retval = 1 Index: src/ChangeLog =================================================================== RCS file: /cvs/lyx/lyx-devel/src/ChangeLog,v retrieving revision 1.642 diff -u -r1.642 ChangeLog --- src/ChangeLog 2002/03/21 17:25:07 1.642 +++ src/ChangeLog 2002/03/21 19:48:25 @@ -16,6 +16,11 @@ * Makefile.am (LYX_CONV_LIBS): select libs depending on partial linking or not. +2002-03-20 Kayvan A. Sylvan <[EMAIL PROTECTED]> + + * convertor.C (convert): Fix path to add scripts directory before + calling convertor programs. + 2002-03-19 Juergen Vigna <[EMAIL PROTECTED]> * text2.C (clearSelection): reset also xsel_cache. Index: src/converter.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/converter.C,v retrieving revision 1.46 diff -u -r1.46 converter.C --- src/converter.C 2002/03/21 17:25:09 1.46 +++ src/converter.C 2002/03/21 19:48:26 @@ -568,6 +568,16 @@ string const & from_format, string const & to_format, string & to_file) { + // Add system_lyxdir/scripts/ to PATH for convertors + // + static int path_changed = 0; + if (!path_changed) { + extern string system_lyxdir; + string scripts_dir = AddPath(system_lyxdir, "scripts"); + AddToExecPath(scripts_dir); + path_changed = 1; + } + to_file = ChangeExtension(to_file_base, formats.extension(to_format)); Index: src/support/ChangeLog =================================================================== RCS file: /cvs/lyx/lyx-devel/src/support/ChangeLog,v retrieving revision 1.89 diff -u -r1.89 ChangeLog --- src/support/ChangeLog 2002/03/21 17:06:34 1.89 +++ src/support/ChangeLog 2002/03/21 19:48:27 @@ -8,6 +8,12 @@ * Makefile.am (libsupport.la): special rules if partial linking +2002-03-19 Kayvan A. Sylvan <[EMAIL PROTECTED]> + + * filetools.h: Added AddToExecPath prototype + * filetools.C (AddToExecPath): helper function to add a path to + the PATH environment variable. + 2002-03-14 Angus Leeming <[EMAIL PROTECTED]> * forkedcontr.C: turn the timer off when their are no longer any Index: src/support/filetools.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/support/filetools.C,v retrieving revision 1.110 diff -u -r1.110 filetools.C --- src/support/filetools.C 2002/03/21 17:06:35 1.110 +++ src/support/filetools.C 2002/03/21 19:48:27 @@ -395,6 +395,11 @@ return PutEnv(envstr); } +bool AddToExecPath(string const & path) +{ + string new_path = "PATH=" + path + ":" + GetEnv("PATH"); + return PutEnv(new_path); +} namespace { Index: src/support/filetools.h =================================================================== RCS file: /cvs/lyx/lyx-devel/src/support/filetools.h,v retrieving revision 1.32 diff -u -r1.32 filetools.h --- src/support/filetools.h 2002/03/21 17:06:35 1.32 +++ src/support/filetools.h 2002/03/21 19:48:27 @@ -108,6 +108,9 @@ bool PutEnv(string const & envstr); /// +bool AddToExecPath(string const & path); + +/// bool PutEnvPath(string const & envstr); /// Substitutes active latex characters with underscores in filename
msg35178/pgp00000.pgp
Description: PGP signature