/* Write one CIDSystemInfo dictionary. */ static void cmap_put_system_info(stream *s, const gs_cid_system_info_t *pcidsi) { if (cid_system_info_is_null(pcidsi)) { stream_puts(s, " null "); } else { stream_puts(s, " 3 dict dup begin\n"); stream_puts(s, "/Registry "); s_write_ps_string(s, pcidsi->Registry.data, pcidsi->Registry.size, 0); stream_puts(s, " def\n/Ordering "); s_write_ps_string(s, pcidsi->Ordering.data, pcidsi->Ordering.size, 0); pprintd1(s, " def\n/Supplement %d def\nend ", pcidsi->Supplement); } }
/* Write one FontInfo entry. */ static void write_font_info(stream *s, const char *key, const gs_const_string *pvalue, int do_write) { if (do_write) { pprints1(s, "\n/%s ", key); s_write_ps_string(s, pvalue->data, pvalue->size, PRINT_HEX_NOT_OK); stream_puts(s, " def"); } }
static int param_print_typed(gs_param_list * plist, gs_param_name pkey, gs_param_typed_value * pvalue) { printer_param_list_t *const prlist = (printer_param_list_t *)plist; stream *s = prlist->strm; if (!prlist->any) { if (prlist->params.prefix) stream_puts(s, prlist->params.prefix); prlist->any = true; } if (prlist->params.item_prefix) stream_puts(s, prlist->params.item_prefix); pprints1(s, "/%s", pkey); switch (pvalue->type) { case gs_param_type_null: stream_puts(s, " null"); break; case gs_param_type_bool: stream_puts(s, (pvalue->value.b ? " true" : " false")); break; case gs_param_type_int: pprintd1(s, " %d", pvalue->value.i); break; case gs_param_type_long: pprintld1(s, " %l", pvalue->value.l); break; case gs_param_type_float: pprintg1(s, " %g", pvalue->value.f); break; case gs_param_type_string: s_write_ps_string(s, pvalue->value.s.data, pvalue->value.s.size, prlist->params.print_ok); break; case gs_param_type_name: /****** SHOULD USE #-ESCAPES FOR PDF ******/ stream_putc(s, '/'); stream_write(s, pvalue->value.n.data, pvalue->value.n.size); break; case gs_param_type_int_array: { uint i; char sepr = (pvalue->value.ia.size <= 10 ? ' ' : '\n'); stream_putc(s, '['); for (i = 0; i < pvalue->value.ia.size; ++i) { pprintd1(s, "%d", pvalue->value.ia.data[i]); stream_putc(s, sepr); } stream_putc(s, ']'); } break; case gs_param_type_float_array: { uint i; char sepr = (pvalue->value.fa.size <= 10 ? ' ' : '\n'); stream_putc(s, '['); for (i = 0; i < pvalue->value.fa.size; ++i) { pprintg1(s, "%g", pvalue->value.fa.data[i]); stream_putc(s, sepr); } stream_putc(s, ']'); } break; /*case gs_param_type_string_array: */ /*case gs_param_type_name_array: */ default: return_error(gs_error_typecheck); } if (prlist->params.item_suffix) stream_puts(s, prlist->params.item_suffix); return 0; }