From 373fc643da68c080dd83c0cc7cf28a93bad5d7ea Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Wed, 3 Sep 2014 06:57:08 -0700 Subject: * 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. --- lib.c | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) (limited to 'lib.c') 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); -- cgit v1.2.3