Commits

ken...@google.com@630680e5-0e50-0410-840e-4b1c322b438d  committed 0306cc8

Same as r275 except for Python.

  • Participants
  • Parent commits 71073ad

Comments (0)

Files changed (2)

File python/google/protobuf/internal/text_format_test.py

             'repeated_double: 1.23e+22\n'
             'repeated_double: 1.23e-18\n'
             'repeated_string: \n'
-            '\"\\000\\001\\007\\010\\014\\n\\r\\t\\013\\\\\\\'\\\"\"\n')
+            '\"\\000\\001\\007\\010\\014\\n\\r\\t\\013\\\\\\\'\\\"\"\n'
+            'repeated_string: "foo" \'corge\' "grault"')
     text_format.Merge(text, message)
 
     self.assertEqual(-9223372036854775808, message.repeated_int64[0])
     self.assertEqual(1.23e-18, message.repeated_double[2])
     self.assertEqual(
         '\000\001\a\b\f\n\r\t\v\\\'\"', message.repeated_string[0])
+    self.assertEqual('foocorgegrault', message.repeated_string[1])
 
   def testMergeUnknownField(self):
     message = unittest_pb2.TestAllTypes()

File python/google/protobuf/text_format.py

       '[a-zA-Z_][0-9a-zA-Z_+-]*|'           # an identifier
       '[0-9+-][0-9a-zA-Z_.+-]*|'            # a number
       '\"([^\"\n\\\\]|\\\\.)*(\"|\\\\?$)|'  # a double-quoted string
-      '\'([^\"\n\\\\]|\\\\.)*(\'|\\\\?$)')  # a single-quoted string
+      '\'([^\'\n\\\\]|\\\\.)*(\'|\\\\?$)')  # a single-quoted string
   _IDENTIFIER = re.compile('\w+')
   _INTEGER_CHECKERS = [type_checkers.Uint32ValueChecker(),
                        type_checkers.Int32ValueChecker(),
     Raises:
       ParseError: If a byte array value couldn't be consumed.
     """
+    list = [self.ConsumeSingleByteString()]
+    while len(self.token) > 0 and self.token[0] in ('\'', '"'):
+      list.append(self.ConsumeSingleByteString())
+    return "".join(list)
+
+  def ConsumeSingleByteString(self):
     text = self.token
     if len(text) < 1 or text[0] not in ('\'', '"'):
       raise self._ParseError('Exptected string.')