]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fformat): Use a copy of FORMAT string so that we can
authorKenichi Handa <handa@m17n.org>
Fri, 4 Apr 2003 10:47:26 +0000 (10:47 +0000)
committerKenichi Handa <handa@m17n.org>
Fri, 4 Apr 2003 10:47:26 +0000 (10:47 +0000)
destructively change "%S" to "%s".

src/ChangeLog
src/editfns.c

index ed6eb184e8c1157a38cec2199a8faee61be4ba29..526998f5d82dc9e308bac5891c1926907758df6f 100644 (file)
@@ -1,3 +1,8 @@
+2003-04-04  Kenichi Handa  <handa@etlken2>
+
+       * editfns.c (Fformat): Use a copy of FORMAT string so that we can
+       destructively change "%S" to "%s".
+
 2003-04-03  Miles Bader  <miles@gnu.org>
 
        * xfaces.c (choose_face_font): Make sure *NEEDS_OVERSTRIKE is
index 0c012514f93aa10d214a4670989bfb08f272aa70..360e067a29807b3caa34ed8e9b9ae2c4501e3f40 100644 (file)
@@ -3240,6 +3240,8 @@ usage: (format STRING &rest OBJECTS)  */)
   }
 
   CHECK_STRING (args[0]);
+  /* We may have to change "%S" to "%s". */
+  args[0] = Fcopy_sequence (args[0]);
 
   /* If we start out planning a unibyte result,
      and later find it has to be multibyte, we jump back to retry.  */
@@ -3326,6 +3328,11 @@ usage: (format STRING &rest OBJECTS)  */)
                goto retry;
              }
            args[n] = tem;
+           /* If we restart the loop, we should not come here again
+              because args[n] is now a string and calling
+              Fprin1_to_string on it produces superflous double
+              quotes.  So, change "%S" to "%s" now.  */
+           *format = 's';
            goto string;
          }
        else if (SYMBOLP (args[n]))