blueloveTH 1 год назад
Родитель
Сommit
7692899366
3 измененных файлов с 11 добавлено и 11 удалено
  1. 1 0
      include/pocketpy/pocketpy.h
  2. 0 11
      src/common/sourcedata.c
  3. 10 0
      src/common/sstream.c

+ 1 - 0
include/pocketpy/pocketpy.h

@@ -316,6 +316,7 @@ const char* py_tpname(py_Type type);
 /// %i: py_i64 (int64_t)
 /// %f: py_f64 (double)
 /// %s: const char*
+/// %q: single quoted %s
 /// %c: char
 /// %p: void*
 /// %t: py_Type

+ 0 - 11
src/common/sourcedata.c

@@ -77,17 +77,6 @@ py_Str pk_SourceData__snapshot(const struct pk_SourceData* self,
     pk_SStream ss;
     pk_SStream__ctor(&ss);
 
-    // pk_SStream__write_cstr(&ss, "  File \"");
-    // pk_SStream__write_Str(&ss, &self->filename);
-    // pk_SStream__write_cstr(&ss, "\", line ");
-    // pk_SStream__write_int(&ss, lineno);
-
-    // pk_SStream__write(&ss,
-    //     "  File \"{}\", line {}",
-    //     &self->filename,
-    //     lineno
-    // );
-
     pk_sprintf(&ss, "  File \"%S\", line %d", &self->filename, lineno);
 
     if(name && *name) {

+ 10 - 0
src/common/sstream.c

@@ -163,6 +163,16 @@ void pk_vsprintf(pk_SStream* ss, const char* fmt, va_list args) {
                 pk_SStream__write_cstr(ss, s);
                 break;
             }
+            case 'q': {
+                const char* s = va_arg(args, const char*);
+                py_Str tmp, tmp2;
+                py_Str__ctor(&tmp, s);
+                tmp2 = py_Str__escape(&tmp, '\'');
+                pk_SStream__write_Str(ss, &tmp2);
+                py_Str__dtor(&tmp);
+                py_Str__dtor(&tmp2);
+                break;
+            }
             case 'S': {
                 const py_Str* s = va_arg(args, const py_Str*);
                 pk_SStream__write_Str(ss, s);