shithub: mc

Download patch

ref: b1c03eec08fe0d951121ead8f1c52c8271e4d420
parent: f5c2360f5f40876545752c7874cd1286baf34234
author: Ori Bernstein <ori@eigenstate.org>
date: Sun Aug 5 22:14:56 EDT 2012

Use .byte constants. At least that seems to work cross platform.

--- a/6/isel.c
+++ b/6/isel.c
@@ -815,20 +815,25 @@
     return as;
 }
 
+#define Nper 30
 static void writeblob(FILE *fd, char *p, size_t sz)
 {
     size_t i;
+    char sep;
 
     for (i = 0; i < sz; i++) {
-        if (i % 60 == 0)
-            fprintf(fd, "\t.ascii \"");
+        if (i % Nper == 0) {
+            sep = ' ';
+            fprintf(fd, "\t.byte");
+        }
         if (isprint(p[i]))
-            fprintf(fd, "%c", p[i]);
+            fprintf(fd, "%c'%c'", sep, p[i]);
         else
-            fprintf(fd, "\\x%x", p[i] & 0xff);
+            fprintf(fd, "%c0x%x", sep, (unsigned)p[i] & 0xff);
         /* line wrapping for readability */
-        if (i % 60 == 59 || i == sz - 1)
-            fprintf(fd, "\"\n");
+        if (i % Nper == Nper - 1 || i == sz - 1)
+            fprintf(fd, "\n");
+        sep = ',';
     }
 }
 
--