📄 cafont_load.c
字号:
#ifndef lintstatic char SccsId[] = " @(#)cafont_load.c 4.1 LPS_ULT_TRN 7/2/90";#endif/* file: cafont_load.c * * COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1987, * 1988, 1989 ALL RIGHTS RESERVED. * * THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE * USED AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF * SUCH LICENSE AND WITH THE INCLUSION OF THE ABOVE * COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES * THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE * AVAILABLE TO ANY OTHER PERSON. NO TITLE TO AND * OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED. * * THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE * WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A * COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. * * DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR * RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT * SUPPLIED BY DIGITAL. * *//* *----------------------------------------------------------- * * begin edit_history * * 001 9-MAR-1988 14:24 mhw * Initial Version, created by splitting cafont.c * * 002 13-MAR-1988 19:06 mhs * Finish merging routines from CADCS and finish arithmetic * typecasting. * * 20-APR-1988 10:28 mhw * Added real code for the 2 reserve memory routines * * 19-MAY-1988 16:52 mhw * Cleaned sixel_cvt_and_store routine such that "ch" variable was * eliminated. A shift does not cause the value in "sixel" to change, * so the original value did not need to be stored in "ch". * * Fixed bug in calls to sixel_cvt_and_store. The position to store the * sixel was not incremented by cmd_str_len, so always stored it at the * beginning of the memory reserved. This was lost when moved from the * Translator. * * In dec_lff_load, removed decrement of dcs_store_ptr by cmd_str_len. * dcs_store_ptr is never increment, it always points to the begining. * * 3-JUN-1988 15:30 mhw * Change call to font_dispose_font to not use box_number * Change call to font_get_memory to pass PL not LONG * Added calls to font_dispose_of_font if font goes beyond memory * available, if syntax error, or if bad result from analyze * * 7-JUL-1988 15:49 mhw * Make changes for conversion of cp_pbuf from WORD to LONG * end edit_history * * 30-NOV-1988 14:28 araj * Install cfont caching, change calls to compute font into calls to invalidate_font * Make sure references to vai or g_table have a test for the validity of the data * first * * *----------------------------------------------------------- *//* *----------------------------------------------------------- * * begin description * * Filename: cafont_load.c * * * This module includes * * dec_rfs() * dec_rfnm() * dec_rbmm() * dec_uffm() * save_dcs_introducer() * init_cmd_ptr() * dec_lff_enter() * dec_lff_term() * dec_lff_font() * dec_lff_load() * dec_lff_sxl() * dec_lff_sxl_rpt() * dec_dld() * sixel_cvt_and_store() * * end description * *----------------------------------------------------------- *//* *----------------------------------------------------------- * * begin edit_history of cafont.c * * 001 22-JAN-1988 17:24 mhw * Added dump file of dufont.c and ducrend.c to translator routines. * #ifdefs separate the dump routines from the real routines. * ducrend routines moved here since were here for the translator. * * 002 25-JAN-1988 14:01 bf * Started filling out stubbed action routines. Extract from * switch in original action routine. * * 003 15-FEB-1988 11:05 mhw * Add include of camac.lib for non-dump oprintf * * 004 15-FEB-1988 17:11 mhs * Move enter_dcs_store code into specific routines for ATFF, * DTFF, LFF and AUPSS. * * end edit_history * *----------------------------------------------------------- *//* Translator edit history for these routines. * * file: xlc_font.c - Translator font routines * created: gh 26-MAR-1986 09:10:31 * edit: * gh 2-MAY-1986 08:10:53 * Adding font_init() stub * nv 5-MAY-1986 10:31:00 * Adding the following routines: * declff () * delete_font_files () * tabulate_deleted_font_file () * tabulate_new_font_file () * update_font_table_and_sgr_flags () * create_new_paired_font () * new_ps_font_number () * decdtff () * decatff () * update_sgr_font_tbl_entry_flag () * blob () * compute_font () * compute_font_for_g_set () * and the following tables: * paired_char_set_table * ps_font_table * and about 50 literals * nv 7-MAY-1986 19:15:00 * Adding the following routines: * init_font_dictionaries () * init_font_table () * init_width_table () * init_left_bearing_table () * init_right_bearing_table () * init_paired_char_set_table () * compute_vai () * the following literals: * NUMBER_OF_PS_FIXED_FONT_DICTNRS * NUMBER_OF_PS_FONT_DICTIONARIES * NUMBER_OF_8_BIT_CHARACTERS * FIRST_DOWNLOADED_FONT * and the following external declarations: * width_table [ NUMBER_OF_PS_FONT_DICTIONARIES ] * [ NUMBER_OF_8_BIT_CHARACTERS ] * left_bearing_table [ NUMBER_OF_PS_FONT_DICTIONARIES ] * [ NUMBER_OF_8_BIT_CHARACTERS ] * right_bearing_table [ NUMBER_OF_PS_FONT_DICTIONARIES ] * [ NUMBER_OF_8_BIT_CHARACTERS ] * nv 8-MAY-1986 11:30:00 * Adding the following routines: * init_height_table * init_min_table * init_max_table * init_ps_font_table * init_sgr_tbl * init_g_table * and the following external declarations: * height_table [ NUMBER_OF_PS_FONT_DICTIONARIES ] * min_table [ NUMBER_OF_PS_FONT_DICTIONARIES ] * max_table [ NUMBER_OF_PS_FONT_DICTIONARIES ] * and to font_table adding the following substructure items: * min * max * nv 30-MAY-1986 11:30:00 * Removed the init_font_dictionary routine by merging its contents * into the font_init routine. * Defined ERROR_MACRO. * Replaced [undeveloped] references to ERROR_CODE with * ERROR_MACRO. * Significantly rewrote compute_font_for_g_set to refine the * selection of font file for type families. * gh 8-JUN-1986 10:51:51 In compute_font_for_g_set() added * 'if (font_value1 [i] .whole == DEAD) continue;' after the FOR * loop that followed the comment: * "Eliminate all font files except those with equal or smaller * spacing or character proportion. Also Enhance all font files * with the correct kind of spacing, i.e., proportionally spaced * or monospaced. Note that no font files are eliminated based * on this property." * nv 18-JUN-1986 09:42:33 Replaced download_font_to_ps_machine * with dispose_font and restructured so that setup_metric_tables * immediately preceeds download_font_to_ps_machine. Incorporated * preliminary ISO software changes, i.e., mainly shuffled nrcs * transformation indices. * nv 26-JUN-1986 21:16:48 Redesigned compute_font_for_g_set and * dump_font_value to employ a new three part font_value which * provides, inherently in its design, an automatic fall-back * capability. * Deactivated ERROR_MACRO and all printf's and dump's. * nv 27-JUN-1986 14:57:04 Renamed requested_attributes * xl_st .requested_attributes. everywhere used. * Removed local declarations of 'requested_attributes.' * Removed superfluous initialization of 'requested_attributes.' * nv 27-JUN-1986 21:47:06 Included compute_proportional_mode * in sgr and decatff. * Incorporate blob metrics into tables. * nv 1-JUL-1986 11:30:47 Make initialization of right_bearing_table * to '0' for all [monospaced] fixed fonts. * Make initialization of superscript_height_table and * subscript_height_table to be half of the height_table entry * [total vertical size] for the fixed fonts. * So that multiple gms (Graphics Size Modification) commands do * not have a cummulative effect, make and maintain a copy of the * last gss (Graphic Size Selection) parameter [called * last_gss_size]. All gms commands are with respect to the last * gss. * nv 9-JUL-1986 17:48:53 Enabled a bug in sgr to allow algorithmic * altering of attributes when fonts are selected by font id. * nv 10-JUL-1986 14:33:44 Deleted 'copy_font' stub. * Changed 'copy_font' to 'dispose_copy_font'. * nv 10-JUL-1986 17:52:10 Redesigned 'horiz_spacing' function. * Removed redundant initialization of xl_st .propl_mode. * In compute_font_for_g_set() revised the way xl_st .propl_mode * is used and added comments. * nv 22-JUL-1986 12:58:02 Added provisions for deleted font not * being garbaged collected by the PS machine. Basically, once a * font table entry is used it may deactiveated (when the font * file is deleted but it cannot be reused. * Defined new literal: DELETED_FONT_FILES_ARE_REMOVED FALSE * Added and cleaned up some comments. * nv 22-JUL-1986 16:07:47 Added provisions for disabling the * pairing of font files where the coping of a fixed font files * is required (until this functionality is available in the PS * machine). * Defined new literal: FIXED_FONT_FILES_CAN_BE_COPIED FALSE * Added and cleaned up some comments. * nv 29-JUL-1986 16:00:07 deleted references to VIRTUAL_CHAR_BLOB; * Replaced them with references to VIR_CHAR_BLOB. * nv 29-JUL-1986 17:39:00 Changed init_font_table and * init_width_table to use 'CPI' literals. * nv 30-JUL-1986 10:52:06 Deleted the assignments of G0-G3 to * GL and GR. * gh 1-AUG-1986 15:57:05 Modified init_font_table to initialize the * .font_file_id's to '\0' of all table entries above FIRST_ * DOWNLAODED_FONT up to FONT_TABLE_SIZE * * araj/gh 1-AUG-1986 17:46:22 * Added initialization of height_table for DLL fonts * to prevent invalid font being defined. * * araj 1-AUG-1986 19:11:14 * Changed #if 0 into #if dump..... * to make it easier to enable/disable dumps * nv 6-AUG-1986 12:33:31 * Modified the following initialization procedures so that ALL * tabular info is initialized instead of that just pertinent to * fixed fonts: * init_font_table, * init_width_table, * init_paired_char_set_table, * init_max_table, * init_min_table, * init_total_height_table, * init_above_baseline_table, * init_superscript_height_table, * init_subscript_height_table, and * init_average_width_table. * Updated print statement which describes the bit structure of * the font values. * nv 15-AUG-1986 15:43:49 Fixed sgr for handling the absence of * arguments. * nv 27-AUG-1986 09:38:52 Fixed bug in 'tabulate_new_font_file' to * allow downloaded font files of character set which are * identical to the user preference character set to be * associated with g_sets (G0-G3) which are user preference. * Disabled 9-JUL-1986 bug in 'compute_font_for_g_set' and 'sgr' * to allow algorithmic altering of attributes when fonts are * selected by font id. * Removed definition of ERROR_REPORT to dbug.h * Removed definition of NUMBER_OF_PS_FONT_DICTIONARIES and where * used changed the spelling to NUMBER_OF_PS_DICTIONARIES to as * to use the definition in xlate.h. * Removed definition of MAX_CSET_SIZE to xlate.h. * laf 27-AUG-1986 14:44:11 Added xl_st.curchar.ul_avp =
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -