added single quote formatting option
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Thu, 1 Sep 2022 20:58:18 +0000 (15:58 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Thu, 1 Sep 2022 20:58:18 +0000 (15:58 -0500)
core/conv.onyx

index f9642cd11d10ef0f75d44a268fc1fb046c2b6b6d..abc2231e4b5cfbf9531ffd2df98be7b365be5c9a 100644 (file)
@@ -310,6 +310,7 @@ Format_Output :: struct {
 Format :: struct {
     pretty_printing      := false;
     quote_strings        := false;
+    single_quote_strings := false;
     dereference          := false;
     custom_format        := true;
     interpret_numbers    := true;
@@ -431,6 +432,11 @@ format_va :: #match {}
                         formatting.quote_strings = true;
                     }
 
+                    case #char "'" {
+                        i += 1;
+                        formatting.single_quote_strings = true;
+                    }
+
                     case #char "d" {
                         i += 1;
                         formatting.interpret_numbers = false;
@@ -543,16 +549,18 @@ format_any :: (output: ^Format_Output, formatting: ^Format, v: any) {
 
         case str {
             if formatting.quote_strings do output->write("\"");
+            if formatting.single_quote_strings do output->write("'");
             width := formatting.minimum_width;
             to_output := *cast(^str) v.data;
 
             @Todo // escape '"' when quote_strings is enabled.
             output->write(to_output);
-            if to_output.count < width && !formatting.quote_strings {
+            if to_output.count < width && !(formatting.quote_strings || formatting.single_quote_strings) {
                 for width - to_output.count do output->write(#char " ");
             }
 
             if formatting.quote_strings do output->write("\"");
+            if formatting.single_quote_strings do output->write("'");
         }
 
         case rawptr {