sima/autoconf/
sima/hosts/i386/
sima/mudlib/
sima/mudlib/kernel/
sima/mudlib/obj/
sima/mudlib/sys/
sima/synhash/mips/
/* This value musn't be misinterpreted as shared string. When string
 * handling is changed, change this value appropriately.
 * This value should also not be mixed up with the null pointer, which is
 * used for a string that is not in the shared string table
 * (and thus won't be found) .
 */
#define ZERO_AS_STR_CASE_LABEL ((char *)&findstring)

#define CASE_BLOCKING_FACTOR 256 /* must be >= 3 */

struct case_list_entry {
    union svalue key;
    p_int addr, line;
    struct case_list_entry *next;
};

struct s_case_state {
    struct case_list_entry *free_block, *next_free, *list0, *list1, *zero;
    struct s_case_state *previous;
    p_int default_addr;
    char some_numeric_labels, no_string_labels;
};

struct case_list_entry *new_case_entry(void);


int store_case_labels(
    p_int total_length,
    p_int default_addr,
    int numeric,
    struct case_list_entry *zero,
    char *(*get_space)(p_int),
    void (*move_instructions)(int, p_int),
    void (*cerror)(char *),
    int (*cerrorl)(char *, char*, int, int)
);