📄 externs.c
字号:
/* * $Id: externs.c,v 1.6 2004/02/20 23:18:59 andrew_belov Exp $ * --------------------------------------------------------------------------- * All uninitialized and initialized variables that are used by two or more * modules are defined here. Note that no separation is done for those used by * ARJ, ARJSFXV and so on... * */#include "arj.h"DEBUGHDR(__FILE__) /* Debug information block *//* Auto-initializing variables */#if SFX_LEVEL>=ARJSFXV #define AUTOINIT#else #define AUTOINIT =0#endif/* Shared data, mostly the duplicate strings */char nullstr[]=""; /* Used instead of "" */char strform[]="%s"; /* printf(strform, str) */char path_separators[]=PATH_SEPARATORS;#if TARGET!=UNIX char switch_chars[]="-/";#else char switch_chars[]="-";#endif#if SFX_LEVEL>=ARJchar cmd_ac[]="AC"; /* Chapter commands */char cmd_cc[]="CC";char cmd_dc[]="DC";char arjtemp_spec[]="ARJTEMP.$%02d"; /* For all temporary files created */char le_prompt[]="%02d> "; /* String entry prompt */#endif#if SFX_LEVEL>=ARJSFXVchar vd_space[]=" "; /* ...after the filename */#endif/* Exported data */#if SFX_LEVEL>=ARJ||defined(REARJ)unsigned char regdata[]={'a', 'R', 'j', ' ', 's', 'O', 'f', 'T', 'w', 'A', 'r', 'E', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '[', '/', '.', ',', ']', '$', '*', '(', '#', '@', '^', '&', '*', '%', '#', '(', ')', 0};#endif#if SFX_LEVEL>=ARJSFXVstruct flist_root flist_order; /* Order of files */struct flist_root flist_archive; /* Archives to be processed */#endif#if SFX_LEVEL>=ARJSFXV||defined(REARJ)struct flist_root flist_main; /* Files to be processed */struct flist_root flist_exclusion; /* Files to be excluded */#endif#if SFX_LEVEL>=ARJ&&defined(HAVE_EAS)struct flist_root flist_ea; /* EAs to include */struct flist_root flist_xea; /* EAs to exclude */#endif#if SFX_LEVEL>=ARJ&&TARGET==UNIXstruct l_entries l_entries;struct l_entries sl_entries;#endifint win32_platform; /* 1 if the archiver has been compiled for Win32 */int display_totals; /* 1 if the total archive statistics can be shown in display_indicator() */int switch_char AUTOINIT; /* 1st switch character */unsigned int file_attr_mask; /* For optimization */int pattern_found; /* 1 once the search pattern was found (m_w command) */#if SFX_LEVEL>=ARJSFXV||defined(REARJ)int is_registered; /* 1 if the archiver is registered (this switch is inverted at the beginning to disallow hacking) */int in_key; /* 1 = use the stored key */#endif#if SFX_LEVEL>=ARJint is_commercial; /* 1 if commercial version (in open-source world, means nothing) */#endifint lfn_supported AUTOINIT; /* 1 if yes; set by detect_lfns */int ext_hdr_flags; /* Extended flags, used in main ARJ archive header */int file_garbled; /* 1 if the GARBLED_FLAG is set */int arch_wildcard_allowed; /* 1 if multiple archives can be processed */int file_args AUTOINIT; /* Number of file arguments */int volume_flag_set; /* 1 if the VOLUME_FLAG is set in the header */#if SFX_LEVEL>=ARJint tmp_archive_used; /* Indicates that a temporary archive file was built */int method_specifier; /* Number of the custom method */int primary_file_type; /* Default type */int identical_filedata; /* 1 if the files in archive are identical with the disk files */#endif#if SFX_LEVEL>=ARJSFXVint ctrlc_not_busy; /* Ctrl+C handler can proceed */int ignore_errors; /* 1 if everything is ignored (-hr) */int ctrlc_processing; /* Ctrl+C is raised */int supply_comment_file; /* Supply file for comment (-jz) */#endif#if SFX_LEVEL>=ARJint use_comment; /* Supply archive comment (-z) */#endifint assume_yes; /* -jy option presence flag */int extract_to_file; /* Extract to a single file (-jw) */#if SFX_LEVEL>=ARJint assign_work_directory; /* Set temporary directory (-w) */#endifint multivolume_option; /* 1 if the "-v" switch is issued */#if SFX_LEVEL>=ARJint allow_mv_update; /* Allow update of multivolume archives */int beep_between_volumes; /* Beep between volumes (-vv) */int chk_arj_version; /* -hv */#endifint verbose_display AUTOINIT; /* State of verbose display (-jv) */int update_criteria AUTOINIT; /* Update option (-u), one of UC_* */#if SFX_LEVEL>=ARJint translate_unix_paths; /* Translate "/" path separators */int type_override; /* File type override (-t) */int timestamp_override; /* Archive time override (-s, ATO_*) */int test_archive_crc; /* Test CRC (-jt, one of TC_*) */int store_by_suffix; /* Store *.ZIP, *.ARJ, etc. */#endifint skip_ts_check AUTOINIT; /* Skip timestamp check (-c) */#if SFX_LEVEL>=ARJint comment_display; /* Comment display settings */int lfn_mode; /* LFN handling mode (-hf) */int create_sfx; /* !0 if the output file will be a SFX (the SFXCRT_* constants define the type of SFX) */int filter_attrs; /* 1 if file are selected depending on their attributes (-hb) */int select_backup_files; /* Select backup files (-jg) */int search_mode; /* File search logging level (-hw) */#endifint keep_tmp_file; /* Keep unprocessed file */#if SFX_LEVEL>=ARJint hollow_mode; /* Create "hollow" archives (-j#) */int restart_at_filename; /* Restart volumes on filename (-jn) */#endifint quiet_mode AUTOINIT; /* 1 or 2 if prompting is suppressed (registered ARJ only) */int recurse_subdirs; /* Recurse thru subdirectories (-r) */int ignore_crc_errors; /* One of ICE_* (-jr) */#if SFX_LEVEL>=ARJint set_string_parameter; /* Set command-line parameters */int query_for_each_file; /* 1 if yes (-q) */int protfile_option; /* 1 if .XRJ file must be built (-hk) */int arjprot_tail; /* Indicates presence of recovery record */int prot_blocks; /* # of ARJ-PROTECT blocks */#endifint arjdisp_enabled AUTOINIT; /* 1 if the ARJ$DISP interface is enabled (-hp) */int prompt_for_more; /* 1 if the user is to be prompted when scrolling */#if SFX_LEVEL>=ARJint marksym_expansion; /* Toggles expansion (see MISC.C) */#endifint fnm_matching AUTOINIT; /* Filename matching mode, (FMM_*) */int rsp_per_line; /* Set per-line RSP mode (-@) */int gost_cipher; /* Garble via GOST 28147-89 (v 2.55+) */int filter_older; /* Same and newer files are thrown away */int filter_same_or_newer; /* Older files are thrown away */int new_files_only AUTOINIT; /* Only the nonexistent files are OK */int nonexist_filespec; /* Specify non-existing file (-hn) */int skip_switch_processing AUTOINIT; /* Set after "--" option */int disable_sharing; /* 1 if SAA extended subs are used */int yes_on_all_queries AUTOINIT; /* 1 if all queries are skipped */int indicator_style AUTOINIT; /* -i indicator style (no enums) */int disable_arj_sw; /* Disable ARJ_SW (-+) */int skip_time_attrs; /* 1 to skip DTA/DTC handling (-j$) */int custom_method; /* The value of -m, or 0 */int max_compression; /* Maximal compression mode (-jm) */int filelist_storage; /* Desired filelist storage method */int create_list_file; /* -l */int listfile_err_opt; /* Return error for list file error (-hhl) */int listchars_allowed; /* 1 if yes */int handle_labels; /* Should the labels be [re]stored (-$) */int sign_with_arjsec; /* 1 if the archive must be sealed */int keep_tmp_archive; /* Keep ARJTEMP on error (-jk) */int keep_bak; /* Keep backup file (-k) */int create_index; /* 1 if yes (-ji) */int detailed_index; /* 1 if detailed index is to be built (-hi) */int ignore_archive_errors; /* 1 if an error like "Bad header" will not cause a termination */int ignore_open_errors; /* Should the archive open errors on add operation be ignored? (-hq) */int clear_archive_bit; /* 1 if chmod operations are used and all bits of file are set to 0 */int jh_enabled; /* Nonzero if the "-jh" is used */int help_issued AUTOINIT; /* Help (-?) is issued by the user */int garble_enabled; /* Garble with password */int lowercase_names AUTOINIT; /* Convert filenames being added or extracted to lower case */int validate_style; /* VALIDATE_ALL, VALIDATE_NOTHING, or VALIDATE_DRIVESPEC */int freshen_criteria AUTOINIT; /* Freshen option (-f), one of FC_* */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -