--- psiconv/trunk/lib/psiconv/generate_simple.c 2000/12/22 22:31:50 71 +++ psiconv/trunk/lib/psiconv/generate_simple.c 2000/12/23 20:21:40 72 @@ -23,12 +23,12 @@ #include "generate_routines.h" #include "error.h" -int psiconv_write_u8(psiconv_buffer buf,psiconv_u8 value) +int psiconv_write_u8(psiconv_buffer buf,const psiconv_u8 value) { return psiconv_list_add(buf,&value); } -int psiconv_write_u16(psiconv_buffer buf,psiconv_u16 value) +int psiconv_write_u16(psiconv_buffer buf,const psiconv_u16 value) { int res; psiconv_u8 temp; @@ -39,7 +39,7 @@ return psiconv_list_add(buf,&temp); } -int psiconv_write_u32(psiconv_buffer buf,psiconv_u32 value) +int psiconv_write_u32(psiconv_buffer buf,const psiconv_u32 value) { int res; psiconv_u8 temp; @@ -56,7 +56,7 @@ return psiconv_list_add(buf,&temp); } -int psiconv_write_S(psiconv_buffer buf, psiconv_u32 value) +int psiconv_write_S(psiconv_buffer buf, const psiconv_u32 value) { if (value < 0x40) return psiconv_write_u8(buf,value * 4 + 2); @@ -70,7 +70,7 @@ } } -int psiconv_write_X(psiconv_buffer buf, psiconv_u32 value) +int psiconv_write_X(psiconv_buffer buf, const psiconv_u32 value) { if (value < 0x80) return psiconv_write_u8(buf,value * 2); @@ -86,7 +86,7 @@ } } -int psiconv_write_length(psiconv_buffer buf, psiconv_length_t value) +int psiconv_write_length(psiconv_buffer buf, const psiconv_length_t value) { return psiconv_write_u32(buf,value * (1440.0/2.54) + 0.5); } @@ -96,14 +96,22 @@ return psiconv_write_u32(buf,value * 20.0 + 0.5); } -int psiconv_write_bool(psiconv_buffer buf, psiconv_bool_t value) +int psiconv_write_bool(psiconv_buffer buf, const psiconv_bool_t value) { - return psiconv_write_u8(buf,value == psiconv_bool_true?1:0); + if ((value != psiconv_bool_true) && (value != psiconv_bool_false)) + psiconv_warn(0,psiconv_list_length(buf), + "Boolean has non-enum value (found %d)",value); + return psiconv_write_u8(buf,value == psiconv_bool_false?0:1); } -int psiconv_write_string(psiconv_buffer buf, psiconv_string_t value) +int psiconv_write_string(psiconv_buffer buf, const psiconv_string_t value) { int res,i; + if (!value) { + psiconv_warn(0,psiconv_list_length(buf), + "NULL string"); + return -PSICONV_E_GENERATE; + } if ((res = psiconv_write_S(buf,strlen(value)))) return res; for (i = 0; i < strlen(value); i++)