diff --git a/tools/output.c b/tools/output.c
index 342e7705df4cd69d5f99e8e97544c428cb37e54a..53071d9ee0abc87f6c3a51b68ace666cc7c983a3 100644
--- a/tools/output.c
+++ b/tools/output.c
@@ -176,8 +176,12 @@ sexp_put_string(struct sexp_output *output, enum sexp_mode mode,
       unsigned i;
       int token = (string->contents[0] < '0' || string->contents[0] > '9');
       int quote_friendly = 1;
-      static const char escape_names[0x10] =
-	{ 0,0,0,0,0,0,0,0, 'b','t','n',0,'f','r',0,0 };
+#define CONTROL_SIZE 0x20
+      static const char escape_names[CONTROL_SIZE] =
+	{
+	  0,0,0,0,0,0,0,0, 'b','t','n',0,'f','r',0,0,
+	  0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0
+	};
 
       for (i = 0; i<string->size; i++)
 	{
@@ -190,7 +194,7 @@ sexp_put_string(struct sexp_output *output, enum sexp_mode mode,
 	    {
 	      if (c >= 0x7f)
 		quote_friendly = 0;
-	      else if (c < 0x20 && !escape_names[c])
+	      else if (c < CONTROL_SIZE && !escape_names[c])
 		quote_friendly = 0;
 	    }
 	}
@@ -211,7 +215,7 @@ sexp_put_string(struct sexp_output *output, enum sexp_mode mode,
 	      
 	      if (c == '\\' || c == '"')
 		escape = 1;
-	      else if (c < 0x20)
+	      else if (c < CONTROL_SIZE)
 		{
 		  escape = 1;
 		  c = escape_names[c];
@@ -247,6 +251,7 @@ sexp_put_string(struct sexp_output *output, enum sexp_mode mode,
 	  sexp_put_code_end(output);
 	  sexp_put_char(output, delimiter);
 	}
+#undef CONTROL_SIZE
     }
   else
     {