📄 mkisofs.c
字号:
* as we cannot write to all strings. * If mkisofs is called with -C xx,yy * our default is overwritten. *//* cdrecord_data = "0,0";*/ break; case OPTION_COPYRIGHT: copyright = optarg; if (strlen(copyright) > 37) {#ifdef USE_LIBSCHILY comerrno(EX_BAD, "Copyright filename string too long\n");#else fprintf(stderr, "Copyright filename string too long\n"); exit(1);#endif }; break; case OPTION_DEBUG: debug++; break; case 'd': omit_period++; warn_violate++; break; case 'D': RR_relocation_depth = 32767; break; case 'f': follow_links++;#ifdef USE_LIBSCHILY errmsgno(EX_BAD, "Warning: -follow-links does not always work correctly; be careful.\n");#else fprintf(stderr, "Warning: -follow-links does not always work correctly; be careful.\n");#endif break; case 'l': full_iso9660_filenames++; break; case OPTION_MAX_FILENAMES: iso9660_namelen = MAX_ISONAME; /* allow 37 chars */ full_iso9660_filenames++; omit_version_number++; warn_violate++; break; case 'L': /* * -L Reserved by POSIX.1-2001 * Meaning: Follow all symbolic links */ allow_leading_dots++; warn_violate++; break; case OPTION_LOG_FILE: log_file = optarg; break; case 'M': merge_image = optarg; break; case 'N': omit_version_number++; warn_violate++; break; case OPTION_FORCE_RR: force_rr++; break; case OPTION_NO_RR: no_rr++; break; case 'o': outfile = optarg; break; case OPTION_PAD: dopad++; break; case OPTION_NOPAD: dopad = 0; break; case OPTION_P_LIST: pathnames = optarg; break; case 'p': preparer = optarg; if (strlen(preparer) > 128) {#ifdef USE_LIBSCHILY comerrno(EX_BAD, "Preparer string too long\n");#else fprintf(stderr, "Preparer string too long\n"); exit(1);#endif }; break; case OPTION_PRINT_SIZE: print_size++; break; case 'P': /* * -P Reserved by POSIX.1-2001 * Meaning: Do not follow symbolic links */ publisher = optarg; if (strlen(publisher) > 128) {#ifdef USE_LIBSCHILY comerrno(EX_BAD, "Publisher string too long\n");#else fprintf(stderr, "Publisher string too long\n"); exit(1);#endif }; break; case OPTION_QUIET: verbose = 0; break; case 'R': use_RockRidge++; break; case 'r': rationalize_all++; use_RockRidge++; break;#ifdef Needed_for_Next_release case 's': case 'S':#ifdef USE_LIBSCHILY errmsgno(EX_BAD, "Option -%c is reserved for future use.\n", c);#else fprintf(stderr, "Option -%c is reserved for future use.\n", c);#endif susage(1);#endif case OPTION_NEW_DIR_MODE: rationalize++; { char *end = 0; new_dir_mode = strtol(optarg, &end, 8); if (!end || *end != 0 || new_dir_mode < 0 || new_dir_mode > 07777) {#ifdef USE_LIBSCHILY comerrno(EX_BAD, "Bad mode for -new-dir-mode\n");#else fprintf(stderr, "Bad mode for -new-dir-mode\n"); exit(1);#endif } break; } case OPTION_UID: rationalize++; use_RockRidge++; rationalize_uid++; { char *end = 0; uid_to_use = strtol(optarg, &end, 0); if (!end || *end != 0) {#ifdef USE_LIBSCHILY comerrno(EX_BAD, "Bad value for -uid\n");#else fprintf(stderr, "Bad value for -uid\n"); exit(1);#endif } break; } case OPTION_GID: rationalize++; use_RockRidge++; rationalize_gid++; { char *end = 0; gid_to_use = strtol(optarg, &end, 0); if (!end || *end != 0) {#ifdef USE_LIBSCHILY comerrno(EX_BAD, "Bad value for -gid\n");#else fprintf(stderr, "Bad value for -gid\n"); exit(1);#endif } break; } case OPTION_FILEMODE: rationalize++; use_RockRidge++; rationalize_filemode++; { char *end = 0; filemode_to_use = strtol(optarg, &end, 8); if (!end || *end != 0 || filemode_to_use < 0 || filemode_to_use > 07777) {#ifdef USE_LIBSCHILY comerrno(EX_BAD, "Bad mode for -file-mode\n");#else fprintf(stderr, "Bad mode for -file-mode\n"); exit(1);#endif } break; } case OPTION_DIRMODE: rationalize++; use_RockRidge++; rationalize_dirmode++; { char *end = 0; dirmode_to_use = strtol(optarg, &end, 8); if (!end || *end != 0 || dirmode_to_use < 0 || dirmode_to_use > 07777) {#ifdef USE_LIBSCHILY comerrno(EX_BAD, "Bad mode for -dir-mode\n");#else fprintf(stderr, "Bad mode for -dir-mode\n"); exit(1);#endif } break; }#ifdef SORTING case OPTION_SORT: do_sort++; add_sort_list(optarg); break;#endif /* SORTING */ case OPTION_SPLIT_OUTPUT: split_output++; break; case OPTION_SYSID: system_id = optarg; if (strlen(system_id) > 32) {#ifdef USE_LIBSCHILY comerrno(EX_BAD, "System ID string too long\n");#else fprintf(stderr, "System ID string too long\n"); exit(1);#endif }; break; case OPTION_TRANS_TBL: trans_tbl = optarg; /* fall through */ case 'T': generate_tables++; break; case OPTION_UCS_LEVEL: ucs_level = atoi(optarg); if (ucs_level < 1 || ucs_level > 3) comerrno(EX_BAD, "Illegal UCS Level %d, use 1..3.\n", ucs_level); break;#ifdef UDF case OPTION_UDF: use_udf++; break;#endif#ifdef DVD_VIDEO case OPTION_DVD: use_udf++; dvd_video++; break;#endif case OPTION_USE_FILEVERSION: use_fileversion++; break; case 'U': /* * Minimal (only truncation of 31+ characters) * translation of filenames. * * Forces -l, -d, -L, -N, -relaxed-filenames, * -allow-lowercase, -allow-multidot * * This is for HP-UX, which does not recognize ANY * extentions (Rock Ridge, Joliet), causing pain when * loading software. pfs_mount can be used to read the * extensions, but the untranslated filenames can be * read by the "native" cdfs mounter. Completely * violates iso9660. */ full_iso9660_filenames++; /* 31 chars */ omit_period++; /* trailing dot */ allow_leading_dots++; omit_version_number++; relaxed_filenames++; /* all chars */ allow_lowercase++; /* even lowcase */ allow_multidot++; /* > 1 dots */ warn_violate++; break; case OPTION_RELAXED_FILENAMES: relaxed_filenames++; warn_violate++; break; case OPTION_GBK4DOS_FILENAMES: gbk4dos_filenames++; warn_violate++; break; case OPTION_GBK4WIN_FILENAMES: gbk4win_filenames++; warn_violate++; break; case OPTION_ALLOW_LOWERCASE: allow_lowercase++; warn_violate++; break; case OPTION_ALLOW_MULTIDOT: allow_multidot++; warn_violate++; break; case OPTION_ISO_TRANSLATE: iso_translate = 0; warn_violate++; break; case 'V': volume_id = optarg; if (strlen(volume_id) > 32) {#ifdef USE_LIBSCHILY comerrno(EX_BAD, "Volume ID string too long\n");#else fprintf(stderr, "Volume ID string too long\n"); exit(1);#endif }; break; case OPTION_VOLSET: volset_id = optarg; if (strlen(volset_id) > 128) {#ifdef USE_LIBSCHILY comerrno(EX_BAD, "Volume set ID string too long\n");#else fprintf(stderr, "Volume set ID string too long\n"); exit(1);#endif }; break; case OPTION_VOLSET_SIZE: volume_set_size = atoi(optarg); break; case OPTION_VOLSET_SEQ_NUM: volume_sequence_number = atoi(optarg); if (volume_sequence_number > volume_set_size) {#ifdef USE_LIBSCHILY comerrno(EX_BAD, "Volume set sequence number too big\n");#else fprintf(stderr, "Volume set sequence number too big\n"); exit(1);#endif } break; case 'v': verbose++; break; case 'z':#ifdef VMS#ifdef USE_LIBSCHILY comerrno(EX_BAD, "Transparent compression not supported with VMS\n");#else fprintf(stderr, "Transparent compression not supported with VMS\n"); exit(1);#endif#else transparent_compression++;#endif break; case 'x': case 'm': /* * Somehow two options to do basically the same thing * got added somewhere along the way. The 'match' * code supports limited globbing, so this is the one * that got selected. Unfortunately the 'x' switch is * probably more intuitive. */ add_match(optarg); break; case OPTION_X_LIST: add_list(optarg); break; case OPTION_I_HIDE: i_add_match(optarg); break; case OPTION_I_LIST: i_add_list(optarg); break; case OPTION_H_HIDE: h_add_match(optarg); break; case OPTION_H_LIST: h_add_list(optarg); break; case OPTION_J_HIDE: j_add_match(optarg); break; case OPTION_J_LIST: j_add_list(optarg); break; case OPTION_HIDE_TRANS_TBL: jhide_trans_tbl++; break; case OPTION_HIDE_RR_MOVED: hide_rr_moved++; break; case OPTION_HELP: usage(0); break; case OPTION_PVERSION: printf("%s (%s-%s-%s)\n", version_string, HOST_CPU, HOST_VENDOR, HOST_OS); exit(0); break; case OPTION_NOSPLIT_SL_COMPONENT: split_SL_component = 0; break; case OPTION_NOSPLIT_SL_FIELD: split_SL_field = 0; break; case OPTION_HARD_DISK_BOOT: use_eltorito++; hard_disk_boot++; get_boot_entry(); current_boot_entry->hard_disk_boot = 1; break; case OPTION_NO_EMUL_BOOT: use_eltorito++; no_emul_boot++; get_boot_entry(); current_boot_entry->no_emul_boot = 1; break; case OPTION_NO_BOOT: use_eltorito++; not_bootable++; get_boot_entry(); current_boot_entry->not_bootable = 1; break; case OPTION_BOOT_LOAD_ADDR: use_eltorito++; { long val; char *ptr; val = strtol(optarg, &ptr, 0); if (*ptr || val < 0 || val >= 0x10000) {#ifdef USE_LIBSCHILY comerrno(EX_BAD, "Boot image load address invalid.\n");#else fprintf(stderr, "Boot image load address invalid.\n");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -