| 3013 | // |
| 3014 | |
| 3015 | static void gen_tpb( const tpb* tpb_val, int column) |
| 3016 | { |
| 3017 | TEXT buffer[80]; |
| 3018 | |
| 3019 | printa(column, "gds__tpb_%d\t: %s [1..%d] of char := %s", |
| 3020 | tpb_val->tpb_ident, PACKED_ARRAY, tpb_val->tpb_length, OPEN_BRACKET); |
| 3021 | |
| 3022 | int length = tpb_val->tpb_length; |
| 3023 | const TEXT* text = (TEXT *) tpb_val->tpb_string; |
| 3024 | TEXT* p = buffer; |
| 3025 | |
| 3026 | while (--length) |
| 3027 | { |
| 3028 | const TEXT c = *text++; |
| 3029 | if ((c >= 'A' && c <= 'Z') || c == '$' || c == '_') |
| 3030 | sprintf(p, "'%c', ", c); |
| 3031 | else |
| 3032 | sprintf(p, "chr(%d), ", c); |
| 3033 | while (*p) |
| 3034 | p++; |
| 3035 | if (p - buffer > 60) |
| 3036 | { |
| 3037 | align(column + INDENT); |
| 3038 | fprintf(gpreGlob.out_file, " %s", buffer); |
| 3039 | p = buffer; |
| 3040 | *p = 0; |
| 3041 | } |
| 3042 | } |
| 3043 | |
| 3044 | // handle the last character |
| 3045 | TEXT c = *text++; |
| 3046 | |
| 3047 | if ((c >= 'A' && c <= 'Z') || c == '$' || c == '_') |
| 3048 | sprintf(p, "'%c',", c); |
| 3049 | else |
| 3050 | sprintf(p, "chr(%d)", c); |
| 3051 | |
| 3052 | align(column + INDENT); |
| 3053 | fprintf(gpreGlob.out_file, "%s", buffer); |
| 3054 | |
| 3055 | printa(column, "%s;\n", CLOSE_BRACKET); |
| 3056 | } |
| 3057 | |
| 3058 | |
| 3059 | //____________________________________________________________ |
no test coverage detected