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

Reply via email to