summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-09-03 06:57:08 -0700
committerKaz Kylheku <kaz@kylheku.com>2014-09-03 06:57:08 -0700
commit373fc643da68c080dd83c0cc7cf28a93bad5d7ea (patch)
tree6a633a8ec01edfda32c037723ad9f131a2f590cc /lib.c
parentacc53f437c82ed43f0211521659c7e01e1b371c9 (diff)
downloadtxr-373fc643da68c080dd83c0cc7cf28a93bad5d7ea.tar.gz
txr-373fc643da68c080dd83c0cc7cf28a93bad5d7ea.tar.bz2
txr-373fc643da68c080dd83c0cc7cf28a93bad5d7ea.zip
* lib.c (symbol_setname): New static function.
(obj_init): Change exception symbol names with underscores to use friendly dashes instead. (compat_fixup): New function. * lib.h (compat_fixup): Declared. * txr.1: Change occurrences of exception symbols from underscores to dashes. * txr.c (txr_main): Call compat_fixup when -C option is processed.
Diffstat (limited to 'lib.c')
-rw-r--r--lib.c33
1 files changed, 26 insertions, 7 deletions
diff --git a/lib.c b/lib.c
index 7baa35d2..da3ccf35 100644
--- a/lib.c
+++ b/lib.c
@@ -3064,6 +3064,12 @@ val symbol_name(val sym)
return sym ? sym->s.name : nil_string;
}
+static void symbol_setname(val sym, val name)
+{
+ type_check(sym, SYM);
+ sym->s.name = name;
+}
+
val symbol_package(val sym)
{
if (sym == nil)
@@ -6040,13 +6046,13 @@ static void obj_init(void)
eof_s = intern(lit("eof"), user_package);
eol_s = intern(lit("eol"), user_package);
error_s = intern(lit("error"), user_package);
- type_error_s = intern(lit("type_error"), user_package);
- internal_error_s = intern(lit("internal_error"), user_package);
- numeric_error_s = intern(lit("numeric_error"), user_package);
- range_error_s = intern(lit("range_error"), user_package);
- query_error_s = intern(lit("query_error"), user_package);
- file_error_s = intern(lit("file_error"), user_package);
- process_error_s = intern(lit("process_error"), user_package);
+ type_error_s = intern(lit("type-error"), user_package);
+ internal_error_s = intern(lit("internal-error"), user_package);
+ numeric_error_s = intern(lit("numeric-error"), user_package);
+ range_error_s = intern(lit("range-error"), user_package);
+ query_error_s = intern(lit("query-error"), user_package);
+ file_error_s = intern(lit("file-error"), user_package);
+ process_error_s = intern(lit("process-error"), user_package);
syntax_error_s = intern(lit("syntax-error"), user_package);
assert_s = intern(lit("assert"), user_package);
@@ -6639,6 +6645,19 @@ void init(const wchar_t *pn, mem_t *(*oom)(mem_t *, size_t),
gc_state(gc_save);
}
+void compat_fixup(int compat_ver)
+{
+ if (compat_ver <= 97) {
+ symbol_setname(type_error_s, lit("type_error"));
+ symbol_setname(internal_error_s, lit("internal_error"));
+ symbol_setname(numeric_error_s, lit("numeric_error"));
+ symbol_setname(range_error_s, lit("range_error"));
+ symbol_setname(query_error_s, lit("query_error"));
+ symbol_setname(file_error_s, lit("file_error"));
+ symbol_setname(process_error_s, lit("process_error"));
+ }
+}
+
void dump(val obj, val out)
{
obj_print(obj, out);