On Sat, Mar 04, 2000 at 03:08:38PM -0800, Kayvan A. Sylvan wrote: > > > Hardcoding anything for Scrap layout is not an option unless it is in > > the layout file. This is also a more general problem. > > I'm working on it. I've added a new boolean AllowMultipleSpaces to the > layout file and am making the corresponding changes to make it work right. Here is the completed patch. I included the ChangeLog entries and changed the examples/noweb2lyx.lyx and examples/Literate.lyx, along with adding some docs to the Customiaztion.lyx and fixing Extended.lyx in view of this fix. After I figured out where to put the fix, it was easy. This works fine for me. Please apply LYXDIFFS to lyx-devel and DOCDIFFS to lyxdoc. Thanks! ---Kayvan -- Kayvan A. Sylvan | Proud husband of | Father to my kids: Sylvan Associates, Inc. | Laura Isabella Sylvan | Katherine Yelena http://www.successlinks.com/kayvan | Reach your goals now! | Robin Gregory
Index: ChangeLog =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/ChangeLog,v retrieving revision 1.226 diff -u -r1.226 ChangeLog --- ChangeLog 2000/03/02 18:30:01 1.226 +++ ChangeLog 2000/03/05 09:08:38 @@ -1,3 +1,17 @@ +2000-03-05 Kayvan A. Sylvan <[EMAIL PROTECTED]> + + * lib/layouts/literate-scrap.inc: Fixed the Scrap layout to + include the AllowMultipleSpaces flag. + +2000-03-05 Kayvan A. Sylvan <[EMAIL PROTECTED]> + + * src/layout.C, src/layout.h: add the new paragraph + layout attribute "AllowMultipleSpaces". This essentially + disables the double-space cleanup code. + + * Corresponding fixes to src/text.C and src/text2.C to implement + the AllowMultipleSpaces fix. + 2000-03-03 Juergen Vigna <[EMAIL PROTECTED]> * src/insets/insetert.C (InsetERT): Now ERT-insets break row Index: lib/examples/Literate.lyx =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/lib/examples/Literate.lyx,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 Literate.lyx --- lib/examples/Literate.lyx 1999/09/27 18:44:32 1.1.1.1 +++ lib/examples/Literate.lyx 2000/03/05 09:08:46 @@ -1,5 +1,4 @@ -#This file was created by <wiensk> Tue Feb 23 22:25:52 1999 -#LyX 1.0 (C) 1995-1999 Matthias Ettrich and the LyX Team +#LyX 1.1 created this file. For more info see http://www.lyx.org/ \lyxformat 2.15 \textclass literate-article \language default @@ -43,7 +42,7 @@ \layout Standard -\begin_inset LatexCommand \tableofcontents +\begin_inset LatexCommand \tableofcontents{} \end_inset @@ -70,12 +69,12 @@ The filter is required to read from standard input, parse for error messages and copy the error messages to the standard output. - During the output process, the filter must present the error messages in a - format that LyX can interpret, currently, the LaTeX error message format. - Of course, nothing will prevent future LyX releases from being able to read - other formats as well (like gcc error messages for example). - This mechanism is necessary to fully explore the literate programming - tool's capabilities. + During the output process, the filter must present the error messages in + a format that LyX can interpret, currently, the LaTeX error message format. + Of course, nothing will prevent future LyX releases from being able to + read other formats as well (like gcc error messages for example). + This mechanism is necessary to fully explore the literate programming tool's + capabilities. \layout Section Algorithm @@ -89,219 +88,51 @@ \newline { \newline - -\protected_separator - if (argc == 2) { + if (argc == 2) { \newline - -\protected_separator - -\protected_separator - -\protected_separator - switch (argv[1][0]) { + switch (argv[1][0]) { \newline - -\protected_separator - -\protected_separator - -\protected_separator - case 'n': + case 'n': \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - <<Scan input for noweb error messages>> + <<Scan input for noweb error messages>> \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - break; + break; \newline - -\protected_separator - -\protected_separator - -\protected_separator - case 'x': + case 'x': \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - <<Scan input for xlc error messages>> + <<Scan input for xlc error messages>> \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - break; + break; \newline - -\protected_separator - -\protected_separator - -\protected_separator - case 'a': + case 'a': \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator -<<AIX system using both noweb and xlc>> + <<AIX system using both noweb and xlc>> \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - break; + break; \newline - -\protected_separator - -\protected_separator - -\protected_separator - case 's': + case 's': \newline - -\protected_separator - -\protected_separator - -\protected_separator - case 'b': + case 'b': \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - <<Solaris and Linux systems using both noweb and gcc>> + <<Solaris and Linux systems using both noweb and gcc>> \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - break; + break; \newline - -\protected_separator - -\protected_separator - -\protected_separator - case 'g': + case 'g': \newline - -\protected_separator - -\protected_separator - -\protected_separator - default: + default: \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - <<Scan input for gcc error messages>> + <<Scan input for gcc error messages>> \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - break; + break; \newline - -\protected_separator - -\protected_separator - -\protected_separator - } + } \newline - -\protected_separator - } else { + } else { \newline - -\protected_separator - -\protected_separator - -\protected_separator - <<Scan input for gcc error messages>> + <<Scan input for gcc error messages>> \newline - -\protected_separator - } + } \newline } \newline @@ -326,43 +157,13 @@ <<Global variables>>= \newline -char -\protected_separator - -\protected_separator - -\protected_separator - buffer[200][200]; +char buffer[200][200]; \newline -int -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - last_buf_line; +int last_buf_line; \newline -int -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - last_err_line; +int last_err_line; \newline -int -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - err_line; +int err_line; \newline @ \layout Section @@ -388,43 +189,19 @@ \newline { \newline - -\protected_separator - int -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - i; + int i; \newline -\protected_separator - \newline - -\protected_separator - fprintf(stdout, "! Build Error: ==> %s ==> + fprintf(stdout, "! Build Error: ==> %s ==> \backslash n", tool); \newline - -\protected_separator - for (i=0; i<buf_size; i++) + for (i=0; i<buf_size; i++) \newline - -\protected_separator - -\protected_separator - -\protected_separator - fprintf(stdout, "%s", buffer[i]); + fprintf(stdout, "%s", buffer[i]); \newline - -\protected_separator - fprintf(stdout, " ... + fprintf(stdout, " ... \backslash n \backslash @@ -461,37 +238,15 @@ \newline { \newline - -\protected_separator - last_buf_line = 0; + last_buf_line = 0; \newline - -\protected_separator - while (fgets(buffer[0], 200, stdin)) { + while (fgets(buffer[0], 200, stdin)) { \newline - -\protected_separator - -\protected_separator - -\protected_separator - if (noweb_try(0)) + if (noweb_try(0)) \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - output_error(1, 0, "noweb"); + output_error(1, 0, "noweb"); \newline - -\protected_separator - } + } \newline } \newline @@ -510,53 +265,29 @@ \newline char *noweb_msgs[] = { \newline - -\protected_separator - "couldn't open file", + "couldn't open file", \newline - -\protected_separator - "couldn't open temporary file", + "couldn't open temporary file", \newline - -\protected_separator - "error writing temporary file", + "error writing temporary file", \newline - -\protected_separator - "ill-formed option", + "ill-formed option", \newline - -\protected_separator - "unknown option", + "unknown option", \newline - -\protected_separator - "Bad format sequence", + "Bad format sequence", \newline - -\protected_separator - "Can't open output file", + "Can't open output file", \newline - -\protected_separator - "Can't open temporary file", + "Can't open temporary file", \newline - -\protected_separator - "Capacity exceeded:", + "Capacity exceeded:", \newline - -\protected_separator - "Ignoring unknown option -", + "Ignoring unknown option -", \newline - -\protected_separator - "This can't happen:", + "This can't happen:", \newline - -\protected_separator - "non-numeric line number in" + "non-numeric line number in" \newline }; \newline @@ -564,12 +295,9 @@ \layout Standard A noweb error message can be any string that contains a matching pair of - < < -\protected_separator - -\protected_separator - -\protected_separator + < <\SpecialChar \protected_separator +\SpecialChar \protected_separator +\SpecialChar \protected_separator > >, or any of the above strings. \layout Scrap @@ -581,161 +309,43 @@ \newline { \newline - -\protected_separator - char -\protected_separator - -\protected_separator - -\protected_separator - *s, *b; + char *s, *b; \newline - -\protected_separator - int -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - i; + int i; \newline - -\protected_separator - + \newline - -\protected_separator - b = buffer[buf_line]; + b = buffer[buf_line]; \newline - -\protected_separator - s = strstr(b, "<<"); + s = strstr(b, "<<"); \newline - -\protected_separator - if (s != NULL) { + if (s != NULL) { \newline - -\protected_separator - -\protected_separator - -\protected_separator - s = strstr(s+2, ">>"); + s = strstr(s+2, ">>"); \newline - -\protected_separator - -\protected_separator - -\protected_separator - if (s != NULL) + if (s != NULL) \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - return 1; + return 1; \newline - -\protected_separator - } else { + } else { \newline - -\protected_separator - -\protected_separator - -\protected_separator - for (i=0; i<12; i++) { + for (i=0; i<12; i++) { \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - s = strstr (b, noweb_msgs[i]); + s = strstr (b, noweb_msgs[i]); \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - if (s != NULL) + if (s != NULL) \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator -break; + break; \newline - -\protected_separator - -\protected_separator - -\protected_separator - } + } \newline - -\protected_separator - -\protected_separator - -\protected_separator - if (s != NULL) + if (s != NULL) \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - return 1; + return 1; \newline - -\protected_separator - } + } \newline - -\protected_separator - return 0; + return 0; \newline } \newline @@ -754,43 +364,20 @@ line at a time. \layout Scrap -<<Scan input for xlc error messages>>= -\protected_separator +<<Scan input for xlc error messages>>=\SpecialChar \protected_separator \newline { \newline - -\protected_separator - last_buf_line = 0; + last_buf_line = 0; \newline - -\protected_separator - while (fgets(buffer[last_buf_line], 200, stdin)) { + while (fgets(buffer[last_buf_line], 200, stdin)) { \newline - -\protected_separator - -\protected_separator - -\protected_separator - if (xlc_try(0)) + if (xlc_try(0)) \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - output_error(1, err_line, "xlc"); + output_error(1, err_line, "xlc"); \newline - -\protected_separator - } + } \newline } \newline @@ -819,65 +406,29 @@ \newline { \newline - -\protected_separator - char -\protected_separator - -\protected_separator - -\protected_separator - *s, *t; + char *s, *t; \newline - -\protected_separator - + \newline - -\protected_separator - t = buffer[buf_line]; + t = buffer[buf_line]; \newline - -\protected_separator - s = t+1; + s = t+1; \newline - -\protected_separator - while (*s != '"' && *s != ' ' && *s != ' + while (*s != '"' && *s != ' ' && *s != ' \backslash 0') \newline - -\protected_separator - -\protected_separator - -\protected_separator - s++; + s++; \newline - -\protected_separator - if (*t != '"' || *s != '"' || strncmp(s+1, ", line ", 7) != 0) + if (*t != '"' || *s != '"' || strncmp(s+1, ", line ", 7) != 0) \newline - -\protected_separator - -\protected_separator - -\protected_separator - return 0; + return 0; \newline - -\protected_separator - s += 8; + s += 8; \newline - -\protected_separator - err_line = atoi(s); + err_line = atoi(s); \newline - -\protected_separator - return 1; + return 1; \newline } \newline @@ -929,223 +480,53 @@ \newline { \newline - -\protected_separator - char -\protected_separator - -\protected_separator - -\protected_separator - *s, *t; + char *s, *t; \newline - -\protected_separator - + \newline - -\protected_separator - last_buf_line = 0; + last_buf_line = 0; \newline - -\protected_separator - while (fgets(buffer[last_buf_line], 200, stdin)) { + while (fgets(buffer[last_buf_line], 200, stdin)) { \newline - -\protected_separator - -\protected_separator - -\protected_separator - /****** Skip lines until I find an error */ + /****** Skip lines until I find an error */ \newline - -\protected_separator - -\protected_separator - -\protected_separator - s = strpbrk(buffer[last_buf_line], " :"); + s = strpbrk(buffer[last_buf_line], " :"); \newline - -\protected_separator - -\protected_separator - -\protected_separator - if (s == NULL || *s == ' ') + if (s == NULL || *s == ' ') \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - continue; /* No gcc error found here */ + continue; /* No gcc error found here */ \newline - -\protected_separator - -\protected_separator - -\protected_separator - do { + do { \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator -<<gcc error message criteria is to find a "...:999:" or a "...: ">> + <<gcc error message criteria is to find a "...:999:" or a "...: ">> \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - /****** OK It is an error message, get line number */ + /****** OK It is an error message, get line number */ \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - err_line = atoi(s+1); + err_line = atoi(s+1); \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - if (last_err_line == 0 || last_err_line == err_line) { + if (last_err_line == 0 || last_err_line == err_line) { \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator -last_err_line = err_line; + last_err_line = err_line; \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator -continue; /* It's either a header or a continuation, don't output yet */ + continue; /* It's either a header or a continuation, don't output + yet */ \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - } + } \newline - -\protected_separator - -\protected_separator - -\protected_separator - /****** Completed the scan of one error message, output it to LyX */ + /****** Completed the scan of one error message, output it to LyX + */ \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - discharge_buffer(1); + discharge_buffer(1); \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - break; + break; \newline - -\protected_separator - -\protected_separator - -\protected_separator - } while (fgets(buffer[last_buf_line], 200, stdin)); + } while (fgets(buffer[last_buf_line], 200, stdin)); \newline - -\protected_separator - } + } \newline - -\protected_separator - -\protected_separator -/****** EOF completes the scan of whatever was being scanned */ + /****** EOF completes the scan of whatever was being scanned */ \newline - -\protected_separator - discharge_buffer(0); + discharge_buffer(0); \newline } \newline @@ -1162,9 +543,7 @@ \newline if (s == NULL || *s == ' ') \newline - -\protected_separator - <<No gcc error found here, but it might terminate the scanning of a previous + <<No gcc error found here, but it might terminate the scanning of a previous one>> \newline /****** Search second ":" in the error number */ @@ -1173,18 +552,14 @@ \newline if (t == NULL || *t == ' ') \newline - -\protected_separator - <<No gcc error found here, but it might terminate the scanning of a previous + <<No gcc error found here, but it might terminate the scanning of a previous one>> \newline /****** Verify if is all digits between ":" */ \newline if (t != s+1+strspn(s+1, "0123456789")) \newline - -\protected_separator - <<No gcc error found here, but it might terminate the scanning of a previous + <<No gcc error found here, but it might terminate the scanning of a previous one>> \newline @ @@ -1195,23 +570,11 @@ \newline { \newline - -\protected_separator - -\protected_separator -err_line = 0; + err_line = 0; \newline - -\protected_separator - -\protected_separator -discharge_buffer(1); + discharge_buffer(1); \newline - -\protected_separator - -\protected_separator -continue; + continue; \newline } \newline @@ -1241,121 +604,29 @@ \newline { \newline - -\protected_separator - if (last_err_line != 0) { + if (last_err_line != 0) { \newline - -\protected_separator - -\protected_separator - -\protected_separator - if (save_last != 0) { + if (save_last != 0) { \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - output_error(last_buf_line-1, last_err_line, "gcc"); + output_error(last_buf_line-1, last_err_line, "gcc"); \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - strcpy (buffer[0], buffer[last_buf_line-1]); + strcpy (buffer[0], buffer[last_buf_line-1]); \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - last_err_line = err_line; + last_err_line = err_line; \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - last_buf_line = 1; + last_buf_line = 1; \newline - -\protected_separator - -\protected_separator - -\protected_separator - } else { + } else { \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - output_error (last_buf_line, last_err_line, "gcc"); + output_error (last_buf_line, last_err_line, "gcc"); \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - last_err_line = 0; + last_err_line = 0; \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - last_buf_line = 0; + last_buf_line = 0; \newline - -\protected_separator - -\protected_separator - -\protected_separator - } + } \newline - -\protected_separator - } + } \newline } \newline @@ -1378,57 +649,19 @@ \newline { \newline - -\protected_separator - last_buf_line = 0; + last_buf_line = 0; \newline - -\protected_separator - while (fgets(buffer[0], 200, stdin)) { + while (fgets(buffer[0], 200, stdin)) { \newline - -\protected_separator - -\protected_separator - -\protected_separator - if (noweb_try(0)) + if (noweb_try(0)) \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - output_error(1, 0, "noweb"); + output_error(1, 0, "noweb"); \newline - -\protected_separator - -\protected_separator - -\protected_separator - else if (xlc_try(0)) + else if (xlc_try(0)) \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - output_error(1, err_line, "xlc"); + output_error(1, err_line, "xlc"); \newline - -\protected_separator - } + } \newline } \newline @@ -1436,8 +669,8 @@ \layout Standard To combine the scan of noweb error messages and gcc error messages is simple - if we realize that it is not possible to find a noweb error message - in the middle of a gcc error message. + if we realize that it is not possible to find a noweb error message in + the middle of a gcc error message. So we just repeat the gcc procedure and test for noweb error messages in the beginning of the scan: \layout Scrap @@ -1446,263 +679,61 @@ \newline { \newline - -\protected_separator - char -\protected_separator - -\protected_separator - -\protected_separator - *s, *t; + char *s, *t; \newline -\protected_separator - \newline - -\protected_separator - last_buf_line = 0; + last_buf_line = 0; \newline - -\protected_separator - while (fgets(buffer[last_buf_line], 200, stdin)) { + while (fgets(buffer[last_buf_line], 200, stdin)) { \newline - -\protected_separator - -\protected_separator - -\protected_separator - /****** Skip lines until I find an error */ + /****** Skip lines until I find an error */ \newline - -\protected_separator - -\protected_separator - -\protected_separator - if (last_buf_line == 0 && noweb_try(0)) { + if (last_buf_line == 0 && noweb_try(0)) { \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - output_error(1, 0, "noweb"); + output_error(1, 0, "noweb"); \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - continue; + continue; \newline - -\protected_separator - -\protected_separator - -\protected_separator - } + } \newline - -\protected_separator - -\protected_separator - -\protected_separator - s = strpbrk(buffer[last_buf_line], " :"); + s = strpbrk(buffer[last_buf_line], " :"); \newline - -\protected_separator - -\protected_separator - -\protected_separator - if (s == NULL || *s == ' ') + if (s == NULL || *s == ' ') \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - continue; /* No gcc error found here */ + continue; /* No gcc error found here */ \newline - -\protected_separator - -\protected_separator - -\protected_separator - do { + do { \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator -<<gcc error message criteria is to find a "...:999:" or a "...: ">> + <<gcc error message criteria is to find a "...:999:" or a "...: ">> \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - /****** OK It is an error, get line number */ + /****** OK It is an error, get line number */ \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - err_line = atoi(s+1); + err_line = atoi(s+1); \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - if (last_err_line == 0 || last_err_line == err_line) { + if (last_err_line == 0 || last_err_line == err_line) { \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator -last_err_line = err_line; + last_err_line = err_line; \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator -continue; /* It's either a header or a continuation, don't output yet */ + continue; /* It's either a header or a continuation, don't output + yet */ \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - } + } \newline - -\protected_separator - -\protected_separator - -\protected_separator - /****** Completed the scan of one error message, output it to LyX */ + /****** Completed the scan of one error message, output it to LyX + */ \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - discharge_buffer(1); + discharge_buffer(1); \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator - break; + break; \newline - -\protected_separator - -\protected_separator - -\protected_separator - } while (fgets(buffer[last_buf_line], 200, stdin)); + } while (fgets(buffer[last_buf_line], 200, stdin)); \newline - -\protected_separator - } + } \newline - -\protected_separator - -\protected_separator -/****** EOF completes the scan of whatever was being scanned */ + /****** EOF completes the scan of whatever was being scanned */ \newline - -\protected_separator - discharge_buffer(0); + discharge_buffer(0); \newline } \newline @@ -1716,17 +747,9 @@ \newline #include <stdio.h> \newline -#include <strings.h> -\protected_separator - -\protected_separator - -\protected_separator - +#include <strings.h> \newline -\protected_separator - \newline <<Global variables>> \newline @@ -1794,9 +817,3 @@ \newline notangle -Rbuild-script $1 | sh \the_end - - - - - - Index: lib/examples/noweb2lyx.lyx =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/lib/examples/noweb2lyx.lyx,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 noweb2lyx.lyx --- lib/examples/noweb2lyx.lyx 1999/09/27 18:44:32 1.1.1.1 +++ lib/examples/noweb2lyx.lyx 2000/03/05 09:08:47 @@ -1,5 +1,4 @@ -#This file was created by <kayvan> Sun May 2 15:56:35 1999 -#LyX 1.0 (C) 1995-1999 Matthias Ettrich and the LyX Team +#LyX 1.1 created this file. For more info see http://www.lyx.org/ \lyxformat 2.15 \textclass literate-article \begin_preamble @@ -95,29 +94,21 @@ \newline # \newline -# Copyright (C) 1999 Kayvan A. +# Copyright (C) 1999-2000 Kayvan A. Sylvan <[EMAIL PROTECTED]> \newline -# -\protected_separator -You are free to use and modify this code under the terms of +# You are free to use and modify this code under the terms of \newline # the GNU General Public Licence version 2 or later. \newline # \newline -# -\protected_separator -Written with assistance from: +# Written with assistance from: \newline -# -\protected_separator - Edmar Wienskoski Jr. +# Edmar Wienskoski Jr. <[EMAIL PROTECTED]> \newline -# -\protected_separator - Amir Karger <[EMAIL PROTECTED]> +# Amir Karger <[EMAIL PROTECTED]> \newline # \newline @@ -269,31 +260,19 @@ \newline if (!$post_only) { \newline - -\protected_separator - -\protected_separator -<<Transform noweb for reLyX>> + <<Transform noweb for reLyX>> \newline } \newline if ((!$pre_only) && (!$post_only)) { \newline - -\protected_separator - -\protected_separator -<<Run reLyX on intermediate file>> + <<Run reLyX on intermediate file>> \newline } \newline if (!$pre_only) { \newline - -\protected_separator - -\protected_separator -<<Fix up LyX file>> + <<Fix up LyX file>> \newline } \newline @@ -319,11 +298,7 @@ \newline { \newline - -\protected_separator - -\protected_separator -if (/^ + if (/^ \backslash s* \backslash @@ -335,39 +310,15 @@ \backslash >=/) { # Beginning of a noweb scrap \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator -<<Read in and output the noweb code chunk>> + <<Read in and output the noweb code chunk>> \newline - -\protected_separator - -\protected_separator -} elsif (/^@ + } elsif (/^@ \backslash s+(.*)/) { # Beginning of a documentation chunk \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator -print OUTPUT $1; # We do not need the ``@'' part + print OUTPUT $1; # We do not need the ``@'' part \newline - -\protected_separator - -\protected_separator -} elsif (/ + } elsif (/ \backslash [ \backslash @@ -377,37 +328,13 @@ \backslash ]/) { # noweb quoted code \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator -<<Perform special input quoting of [[var]]>> + <<Perform special input quoting of [[var]]>> \newline - -\protected_separator - -\protected_separator -} else { + } else { \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator -print OUTPUT; # Just let the line pass through + print OUTPUT; # Just let the line pass through \newline - -\protected_separator - -\protected_separator -} + } \newline } \newline @@ -484,25 +411,13 @@ \newline if ($pre_only) { \newline - -\protected_separator - -\protected_separator -&setup_files($input_file, $output_file); + &setup_files($input_file, $output_file); \newline } else { \newline - -\protected_separator - -\protected_separator -$relyx_file = "temp$$"; + $relyx_file = "temp$$"; \newline - -\protected_separator - -\protected_separator -&setup_files($input_file, $relyx_file); + &setup_files($input_file, $relyx_file); \newline } \newline @@ -520,35 +435,19 @@ \newline sub setup_files { \newline - -\protected_separator - -\protected_separator -my($in, $out) = @_; + my($in, $out) = @_; \newline - -\protected_separator - -\protected_separator -open(INPUT, "<$in") || die "Can not read $in: $! + open(INPUT, "<$in") || die "Can not read $in: $! \backslash n"; \newline - -\protected_separator - -\protected_separator -open(OUTPUT, ">$out") || die "Can not write $out: $! + open(OUTPUT, ">$out") || die "Can not write $out: $! \backslash n"; \newline } \newline -@ %def setup_files -\protected_separator - -\protected_separator - +@ %def setup_files \layout Subsection Reading in the @@ -575,45 +474,25 @@ \newline scrapline: while (<INPUT>) { \newline - -\protected_separator - -\protected_separator -last scrapline if /^@ + last scrapline if /^@ \backslash s+/; \newline - -\protected_separator - -\protected_separator -$savedScrap .= $_; + $savedScrap .= $_; \newline }; \newline switch: { \newline - -\protected_separator - -\protected_separator -if (/^@ + if (/^@ \backslash s+$/) {$savedScrap .= $_; last switch; } \newline - -\protected_separator - -\protected_separator -if (/^@ + if (/^@ \backslash s+%def.*$/) {$savedScrap .= $_; last switch; } \newline - -\protected_separator - -\protected_separator -if (/^@ + if (/^@ \backslash s+(.*)$/) {$savedScrap .= "@ \backslash @@ -748,11 +627,7 @@ \newline open(INPUT, "<$relyx_file") || \newline - -\protected_separator - -\protected_separator -die "Can not read $relyx_file: $! + die "Can not read $relyx_file: $! \backslash n"; \newline @@ -760,41 +635,17 @@ \newline parse: while(<INPUT>) { \newline - -\protected_separator - -\protected_separator -if (/ + if (/ \backslash \backslash docu[m]entclass{(.*)}/) { \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator -$class = $1; + $class = $1; \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator -last parse; + last parse; \newline - -\protected_separator - -\protected_separator -} + } \newline } \newline @@ -818,11 +669,7 @@ \backslash n" \newline - -\protected_separator - -\protected_separator -if (system("reLyX -c $doc_class $relyx_file")); + if (system("reLyX -c $doc_class $relyx_file")); \newline @ \layout Standard @@ -856,23 +703,11 @@ \newline { \newline - -\protected_separator - -\protected_separator -<<Fix code chunks in latex layout>> + <<Fix code chunks in latex layout>> \newline - -\protected_separator - -\protected_separator -<<Fix [[var]] noweb construct>> + <<Fix [[var]] noweb construct>> \newline - -\protected_separator - -\protected_separator -print OUTPUT; # default + print OUTPUT; # default \newline } \newline @@ -912,17 +747,11 @@ \newline if ($post_only) { \newline - -\protected_separator - -\protected_separator -&setup_files("$input_file", "$output_file"); + &setup_files("$input_file", "$output_file"); \newline } else { \newline - -\protected_separator - &setup_files("$relyx_file.lyx", "$output_file"); + &setup_files("$relyx_file.lyx", "$output_file"); \newline } \newline @@ -944,61 +773,23 @@ \backslash latex latex/) { # Beginning of some latex code \newline - -\protected_separator - -\protected_separator -if (($line = <INPUT>) =~ /^ + if (($line = <INPUT>) =~ /^ \backslash s*<</) { # code scrap \newline - -\protected_separator - -\protected_separator - -\protected_separator -<<Transform this chunk into layout scrap>> + <<Transform this chunk into layout scrap>> \newline - -\protected_separator - -\protected_separator -} else { + } else { \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator -# print the + # print the \backslash latex latex line + next line \newline - -\protected_separator - -\protected_separator - -\protected_separator - -\protected_separator -print OUTPUT "$_$line"; + print OUTPUT "$_$line"; \newline - -\protected_separator - -\protected_separator -} + } \newline - -\protected_separator - -\protected_separator -next line; + next line; \newline } \newline @@ -1023,17 +814,9 @@ \newline codeline: while (<INPUT>) { \newline - -\protected_separator - -\protected_separator -$savedScrap .= $_; + $savedScrap .= $_; \newline - -\protected_separator - -\protected_separator -last codeline if /^@ + last codeline if /^@ \backslash s+/; \newline @@ -1054,39 +837,23 @@ \newline slurp: while (<INPUT>) { \newline - -\protected_separator - -\protected_separator -last slurp if / + last slurp if / \backslash \backslash latex /; \newline - -\protected_separator - -\protected_separator -next slurp if / + next slurp if / \backslash \backslash newline/; \newline - -\protected_separator - -\protected_separator -next slurp if /^ + next slurp if /^ \backslash s*$/; \newline - -\protected_separator - -\protected_separator -warn "confused by line: $_"; + warn "confused by line: $_"; \newline } \newline @@ -1136,11 +903,7 @@ \backslash ]/) { # special code for [[var]] \newline - -\protected_separator - -\protected_separator -s/ + s/ \backslash [ \backslash @@ -1164,17 +927,9 @@ \backslash n/g; \newline - -\protected_separator - -\protected_separator -print OUTPUT; + print OUTPUT; \newline - -\protected_separator - -\protected_separator -next line; + next line; \newline } \newline @@ -1212,53 +967,23 @@ \newline if ($ARGV[0] eq "-pre") { \newline - -\protected_separator - -\protected_separator -&usage unless ($#ARGV == 2); + &usage unless ($#ARGV == 2); \newline - -\protected_separator - -\protected_separator -$input_file = $ARGV[1]; $output_file = $ARGV[2]; $pre_only = 1; + $input_file = $ARGV[1]; $output_file = $ARGV[2]; $pre_only = 1; \newline } elsif ($ARGV[0] eq "-post") { \newline - -\protected_separator - -\protected_separator -&usage unless ($#ARGV == 2); + &usage unless ($#ARGV == 2); \newline - -\protected_separator - -\protected_separator -$input_file = $ARGV[1]; $output_file = $ARGV[2]; $post_only = 1; + $input_file = $ARGV[1]; $output_file = $ARGV[2]; $post_only = 1; \newline } else { \newline - -\protected_separator - -\protected_separator -&usage unless ($#ARGV == 1); + &usage unless ($#ARGV == 1); \newline - -\protected_separator - -\protected_separator -$input_file = $ARGV[0]; -\protected_separator -$output_file = $ARGV[1]; + $input_file = $ARGV[0]; $output_file = $ARGV[1]; \newline - -\protected_separator - -\protected_separator -$pre_only = 0; $post_only = 0; + $pre_only = 0; $post_only = 0; \newline } \newline @@ -1269,11 +994,7 @@ \newline sub usage() { \newline - -\protected_separator - -\protected_separator -print "Usage: noweb2lyx [-pre | -post] input-file output-file + print "Usage: noweb2lyx [-pre | -post] input-file output-file \newline \newline @@ -1287,11 +1008,7 @@ \backslash n"; \newline - -\protected_separator - -\protected_separator -exit; + exit; \newline } \newline Index: lib/layouts/literate-scrap.inc =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/lib/layouts/literate-scrap.inc,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 literate-scrap.inc --- lib/layouts/literate-scrap.inc 1999/09/27 18:44:33 1.1.1.1 +++ lib/layouts/literate-scrap.inc 2000/03/05 09:08:48 @@ -2,8 +2,7 @@ # Suggested style to write your code: # Within same scrap, lines are separated by new-lines (Ctrl-return), use: # ItemSep 0.4 -# . disavantage: lyx doesn't allow space on first column, use proteced space -# must type ctrl-return every single line +# . disavantage: must type ctrl-return every single line # . advantage: looks better (IMHO) # resembles more closelly the produced paper doc. (more WYSIWYG) # @@ -14,6 +13,7 @@ Margin First_Dynamic LatexType Paragraph LatexName dummy + AllowMultipleSpaces 1 NewLine 0 LeftMargin MMM ParSep 0.4 Index: lib/reLyX/noweb2lyx.in =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/lib/reLyX/noweb2lyx.in,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 noweb2lyx.in --- lib/reLyX/noweb2lyx.in 1999/09/27 18:44:34 1.1.1.1 +++ lib/reLyX/noweb2lyx.in 2000/03/05 09:08:48 @@ -1,14 +1,14 @@ #!@PERL@ # -# Copyright (C) 1999 Kayvan A. Sylvan <[EMAIL PROTECTED]> +# Copyright (C) 1999-2000 Kayvan A. Sylvan <[EMAIL PROTECTED]> # You are free to use and modify this code under the terms of # the GNU General Public Licence version 2 or later. # # Written with assistance from: -# Edmar Wienskoski Jr. <[EMAIL PROTECTED]> -# Amir Karger <[EMAIL PROTECTED]> +# Edmar Wienskoski Jr. <[EMAIL PROTECTED]> +# Amir Karger <[EMAIL PROTECTED]> # -# $Id: noweb2lyx.in,v 1.1.1.1 1999/09/27 18:44:34 larsbj Exp $ +# $Id: noweb2lyx.lyx,v 1.1.1.1 1999/09/27 18:44:32 larsbj Exp $ # # NOTE: This file was automatically generated from noweb2lyx.lyx using noweb. # Index: src/layout.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/layout.C,v retrieving revision 1.16 diff -u -r1.16 layout.C --- src/layout.C 2000/02/29 02:19:15 1.16 +++ src/layout.C 2000/03/05 09:08:52 @@ -51,6 +51,7 @@ enum LayoutTags { LT_ALIGN = 1, LT_ALIGNPOSSIBLE, + LT_ALLOW_MULTIPLE_SPACES, LT_MARGIN, LT_BOTTOMSEP, LT_COPYSTYLE, @@ -99,6 +100,7 @@ static keyword_item layoutTags[] = { { "align", LT_ALIGN }, { "alignpossible", LT_ALIGNPOSSIBLE }, + { "allowmultiplespaces", LT_ALLOW_MULTIPLE_SPACES }, { "bottomsep", LT_BOTTOMSEP }, { "copystyle", LT_COPYSTYLE }, { "end", LT_END }, @@ -146,6 +148,7 @@ latextype = LATEX_PARAGRAPH; intitle = false; needprotect = false; + allowmultiplespaces = false; keepempty = false; font = LyXFont(LyXFont::ALL_INHERIT); labelfont = LyXFont(LyXFont::ALL_INHERIT); @@ -178,6 +181,7 @@ keyword_item layoutTags[] = { { "align", LT_ALIGN }, { "alignpossible", LT_ALIGNPOSSIBLE }, + { "allowmultiplespaces", LT_ALLOW_MULTIPLE_SPACES }, { "bottomsep", LT_BOTTOMSEP }, { "copystyle", LT_COPYSTYLE }, { "end", LT_END }, @@ -283,6 +287,10 @@ case LT_KEEPEMPTY: keepempty = lexrc.next() && lexrc.GetInteger(); + break; + + case LT_ALLOW_MULTIPLE_SPACES: + allowmultiplespaces = lexrc.next() && lexrc.GetInteger(); break; case LT_FONT: Index: src/layout.h =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/layout.h,v retrieving revision 1.14 diff -u -r1.14 layout.h --- src/layout.h 2000/02/29 02:19:15 1.14 +++ src/layout.h 2000/03/05 09:08:53 @@ -289,6 +289,9 @@ bool needprotect; /// true when empty paragraphs should be kept. bool keepempty; + /// true when we allow multiple spaces input. + bool allowmultiplespaces; + /// bool isParagraph() const { return latextype == LATEX_PARAGRAPH; Index: src/text.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/text.C,v retrieving revision 1.32 diff -u -r1.32 text.C --- src/text.C 2000/03/02 02:19:42 1.32 +++ src/text.C 2000/03/05 09:09:05 @@ -2385,6 +2385,9 @@ * same Paragraph one to the right and make a rebreak */ void LyXText::InsertChar(char c) { + bool allow; + allow = textclasslist.Style(parameters->textclass, + cursor.row->par->GetLayout()).allowmultiplespaces; SetUndo(Undo::INSERT, cursor.par->ParFromPos(cursor.pos)->previous, cursor.par->ParFromPos(cursor.pos)->next); @@ -2437,7 +2440,7 @@ bool jumped_over_space = false; - if (IsLineSeparatorChar(c)) { + if (!allow && IsLineSeparatorChar(c)) { #ifndef FIX_DOUBLE_SPACE if (cursor.pos < lastpos && cursor.par->IsLineSeparator(cursor.pos)) { Index: src/text2.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/text2.C,v retrieving revision 1.30 diff -u -r1.30 text2.C --- src/text2.C 2000/02/29 02:19:16 1.30 +++ src/text2.C 2000/03/05 09:09:13 @@ -3221,6 +3221,12 @@ // this is the delete-empty-paragraph-mechanism. if (selection) return; + // If multiple-spaces are allowed, return. + bool allow; + allow = textclasslist.Style(parameters->textclass, + +old_cursor.row->par->GetLayout()).allowmultiplespaces; + if (allow) return; + #ifdef FIX_DOUBLE_SPACE /* Ok I'll put some comments here about what is missing. I have fixed BackSpace (and thus Delete) to not delete
Index: Customization.lyx =================================================================== RCS file: /usr/local/lyx/cvsroot/lyxdoc/Customization.lyx,v retrieving revision 1.20 diff -u -r1.20 Customization.lyx --- Customization.lyx 2000/02/17 15:22:56 1.20 +++ Customization.lyx 2000/03/05 09:14:59 @@ -6679,6 +6679,34 @@ as some kind of break, which does not contain actual text. \layout Description +\family typewriter +\series medium +AllowMultipleSpaces +\family default +\series default + [ +\family typewriter +\emph on +0 +\emph default +, 1 +\family default +] LyX will not allow you to enter two consecutive + spaces in a paragraph (or allow you to type a space at the beginning of + a paragraph). + However, there are situations in which you will want to do just that. + The +\begin_inset Quotes eld +\end_inset + +Scrap +\begin_inset Quotes erd +\end_inset + + layout in the literate classes, for example, needs this so that you can + format code sections. +\layout Description + \family typewriter \series medium Index: Extended.lyx =================================================================== RCS file: /usr/local/lyx/cvsroot/lyxdoc/Extended.lyx,v retrieving revision 1.25 diff -u -r1.25 Extended.lyx --- Extended.lyx 2000/01/25 20:43:05 1.25 +++ Extended.lyx 2000/03/05 09:15:20 @@ -11796,9 +11796,7 @@ to fix that. \end_float - If you want to preserve the code's indentation, you will have to type ctrl-spac -e to enter a blank character. - I believe these problems are a small price to pay for the benefits LyX + I believe these minor problems are a small price to pay for the benefits LyX brings to you for typing, compiling, and debugging your literate program. \layout Paragraph