* app.c (do_scrub_chars): Cope with \ at end of buffer.x
authorNathan Sidwell <nathan@codesourcery.com>
Mon, 28 May 2007 19:32:58 +0000 (19:32 +0000)
committerNathan Sidwell <nathan@codesourcery.com>
Mon, 28 May 2007 19:32:58 +0000 (19:32 +0000)
gas/ChangeLog
gas/app.c

index 95dfaa4..8d9483a 100644 (file)
@@ -1,3 +1,7 @@
+2007-05-28  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * app.c (do_scrub_chars): Cope with \ at end of buffer.
+
 2007-05-26  Alan Modra  <amodra@bigpond.net.au>
 
        * config/tc-ppc.c (ppc_insert_operand): Truncate sign bits in
index aa18004..d7eb509 100644 (file)
--- a/gas/app.c
+++ b/gas/app.c
@@ -1360,7 +1360,15 @@ do_scrub_chars (int (*get) (char *, int), char *tostart, int tolen)
                     the space.  We don't have enough information to
                     make the right choice, so here we are making the
                     choice which is more likely to be correct.  */
-                 PUT (' ');
+                 if (to + 1 >= toend)
+                   {
+                     /* If we're near the end of the buffer, save the
+                        character for the next time round.  Otherwise
+                        we'll lose our state.  */
+                     UNGET (ch);
+                     goto tofull;
+                   }
+                 *to++ = ' ';
                }
 
              state = 3;