about summary refs log tree commit diff stats
path: root/tools/expand_string_handle
diff options
context:
space:
mode:
Diffstat (limited to 'tools/expand_string_handle')
-rwxr-xr-xtools/expand_string_handle20
1 files changed, 20 insertions, 0 deletions
diff --git a/tools/expand_string_handle b/tools/expand_string_handle
new file mode 100755
index 00000000..0c739f65
--- /dev/null
+++ b/tools/expand_string_handle
@@ -0,0 +1,20 @@
+#!/bin/sh
+# Expand syntax sugar for SubX string literals and show the corresponding handle definition.
+#
+# The handle has a fake alloc-id; we're never going to try to reclaim global
+# variables, we just sometimes need handles in them to satisfy type constraints.
+
+INPUT=$(cat)
+echo "    0x11/imm32/alloc-id:fake:payload"
+echo "    # \"$INPUT\""
+
+# print length in bytes
+printf "    0x%x/imm32/size\n" $(echo -n $INPUT |wc -c)
+
+# print ascii codes for each character in hex
+echo -n "   "
+for c in $(echo "$INPUT" |sed -e 's/./& /g')
+do
+  echo -n " 0x$(printf '%x' "'$c")/$c"
+done
+echo