From: Dirk Herrmann Date: Tue, 5 Dec 2000 14:07:03 +0000 (+0000) Subject: * Use scm_tc3_* codes instead of hardcoded values. X-Git-Url: http://git.hcoop.net/bpt/guile.git/commitdiff_plain/e34f941a3ae0ae86d7fd6a78fe6087a3d9d7ebf1 * Use scm_tc3_* codes instead of hardcoded values. --- diff --git a/libguile/ChangeLog b/libguile/ChangeLog index b572145ce..be1ab2a7a 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,3 +1,9 @@ +2000-12-05 Dirk Herrmann + + * print.c (scm_iprin1): Use scm_tc3_* codes instead of hardcoded + values. Added comment about tc3 codes that may appear in + immediates. Got rid of one goto command. + 2000-12-05 Dirk Herrmann * dynl.c (sysdep_dynl_link): Improved error reporting. diff --git a/libguile/print.c b/libguile/print.c index ecdc40d27..6ec1f11d7 100644 --- a/libguile/print.c +++ b/libguile/print.c @@ -312,16 +312,24 @@ scm_iprin1 (SCM exp, SCM port, scm_print_state *pstate) taloop: switch (SCM_ITAG3 (exp)) { - case 2: - case 6: + case scm_tc3_closure: + case scm_tc3_tc7_1: + case scm_tc3_tc7_2: + /* These tc3 tags should never occur in an immediate value. They are + * only used in cell types of non-immediates, i. e. the value returned + * by SCM_CELL_TYPE (exp) can use these tags. + */ + scm_ipruk ("immediate", exp, port); + break; + case scm_tc3_int_1: + case scm_tc3_int_2: scm_intprint (SCM_INUM (exp), 10, port); break; - case 4: + case scm_tc3_imm24: if (SCM_CHARP (exp)) { - register long i; + long i = SCM_CHAR (exp); - i = SCM_CHAR (exp); if (SCM_WRITINGP (pstate)) { scm_puts ("#\\", port); @@ -350,18 +358,17 @@ taloop: scm_intprint (SCM_IDIST (exp), 10, port); } else - goto idef; + { + /* unknown immediate value */ + scm_ipruk ("immediate", exp, port); + } break; - case 1: + case scm_tc3_cons_gloc: /* gloc */ scm_puts ("#@", port); exp = SCM_GLOC_SYM (exp); goto taloop; - default: - idef: - scm_ipruk ("immediate", exp, port); - break; - case 0: + case scm_tc3_cons: switch (SCM_TYP7 (exp)) { case scm_tcs_cons_gloc: