int main (int ac, char *av[]) { kpse_set_program_name (av[0], "getdestdir"); printf ("%s", getdestdir (ac, av)); return 0; }
int main(int ac, char **av) { int savo, savi; FILE *fnul; char name[256]; char fullname[256]; char *p; kpse_set_program_name(av[0], "mkocp"); if(ac != 2) { fprintf(stderr,"%s : Usage %s ocpname\n", av[0], av[0]); return 1; } p = strrchr(av[1], '.'); if(p) *p = '\0'; strcpy(name, av[1]); strcpy(fullname, name); strcat(fullname, ".ocp"); /* save stdout and stdin */ savo = _dup(fileno(stdout)); savi = _dup(fileno(stdin)); /* connect stdout to stderr */ _dup2(fileno(stderr), fileno(stdout)); /* connect stdin to nul device */ if(!(fnul = fopen("nul", "r"))) { fprintf(stderr, "Cannot open nul device to read\n"); exit(100); } _dup2(fileno(fnul), fileno(stdin)); /* COMMAND */ _spawnlp(_P_WAIT, "otp2ocp", "otp2ocp", name, NULL); /* END COMMAND */ /* return to original stdout and stdin */ _dup2(savo, fileno(stdout)); close(savo); _dup2(savi, fileno(stdin)); close(savi); /* close nul device */ fclose(fnul); if(_access(fullname, 0) == 0) printf("%s\n", fullname); return 0; }
void init_pykpathsea(void) { PyObject *module = Py_InitModule("_pykpathsea", pykpathsea_methods); PyObject *dict = PyModule_GetDict(module); kpse_set_program_name("dvips", "dvips"); AddInt(kpse_gf_format); AddInt(kpse_pk_format); AddInt(kpse_any_glyph_format); AddInt(kpse_tfm_format); AddInt(kpse_afm_format); AddInt(kpse_base_format); AddInt(kpse_bib_format); AddInt(kpse_bst_format); AddInt(kpse_cnf_format); AddInt(kpse_db_format); AddInt(kpse_fmt_format); AddInt(kpse_fontmap_format); AddInt(kpse_mem_format); AddInt(kpse_mf_format); AddInt(kpse_mfpool_format); AddInt(kpse_mft_format); AddInt(kpse_mp_format); AddInt(kpse_mppool_format); AddInt(kpse_mpsupport_format); AddInt(kpse_ocp_format); AddInt(kpse_ofm_format); AddInt(kpse_opl_format); AddInt(kpse_otp_format); AddInt(kpse_ovf_format); AddInt(kpse_ovp_format); AddInt(kpse_pict_format); AddInt(kpse_tex_format); AddInt(kpse_texdoc_format); AddInt(kpse_texpool_format); AddInt(kpse_texsource_format); AddInt(kpse_tex_ps_header_format); AddInt(kpse_troff_font_format); AddInt(kpse_type1_format); AddInt(kpse_vf_format); AddInt(kpse_dvips_config_format); AddInt(kpse_ist_format); AddInt(kpse_truetype_format); AddInt(kpse_type42_format); AddInt(kpse_web2c_format); AddInt(kpse_program_text_format); AddInt(kpse_program_binary_format); AddInt(kpse_miscfonts_format); /* AddInt(kpse_web_format); AddInt(kpse_cweb_format); */ }
int main (int argc, char **argv) { string tilde_path = "tilde"; kpse_set_program_name(argv[0],NULL); test_expand_tilde (""); test_expand_tilde ("none"); test_expand_tilde ("~root"); test_expand_tilde ("~"); test_expand_tilde ("foo~bar"); test_expand_tilde ("!!"); test_expand_tilde ("!!none"); test_expand_tilde ("!!~root"); test_expand_tilde ("!!~"); test_expand_tilde ("!!foo~bar"); return 0; }
static int set_program_name(lua_State * L) { const char *exe_name = luaL_checkstring(L, 1); const char *prog_name = luaL_optstring(L, 2, exe_name); if (!program_name_set) { kpse_set_program_name(exe_name, prog_name); program_name_set = 1; } else { kpse_reset_program_name(prog_name); } /* fix up the texconfig entry */ lua_checkstack(L, 3); lua_getglobal(L, "texconfig"); if (lua_istable(L, -1)) { lua_pushstring(L, "kpse_init"); lua_pushboolean(L, 0); lua_rawset(L, -3); } lua_pop(L, 1); return 0; }
int main (int argc, char **argv) { kpse_set_program_name(argv[0], NULL); test_var ("a", "a"); test_var ("$foo", ""); test_var ("a$foo", "a"); test_var ("$foo a", " a"); test_var ("a$foo b", "a b"); xputenv ("FOO", "foo value"); test_var ("a$FOO", "afoo value"); xputenv ("Dollar", "$"); test_var ("$Dollar a", "$ a"); test_var ("a${FOO}b", "afoo valueb"); test_var ("a${}b", "ab"); test_var ("$$", ""); /* and error */ test_var ("a${oops", "a"); /* and error */ return 0; }
int main(int ac, char **av) { int savo, savi; FILE *fnul; char *fmtname; char *p; char orgname[256]; char texbindir[256]; char fullbin[256]; kpse_set_program_name(av[0], NULL); if(ac != 2) { fprintf(stderr,"%s : Usage %s formatname\n", av[0], av[0]); fprintf(stderr,"formatname : (foo.fmt, foo.nfmt, foo.mem, foo.base)\n"); return 1; } if(strlen(av[1]) > 127) { fprintf(stderr, "\nToo long a format name.\n"); return 100; } p = kpse_var_value("SELFAUTOLOC"); if(p == 0) { fprintf(stderr, "I cannot get SELFAUTOLOC\n"); exit(1); } strcpy(texbindir, p); free(p); for(p=texbindir; *p; p++) { if(*p == '/') *p = '\\'; } strcat(texbindir, "\\"); strcpy(orgname, av[1]); p = strrchr(av[1], '.'); if(!p) { fprintf(stderr, "formatname needs a suffix.\n"); return 1; } if(stricmp(p, ".fmt") && stricmp(p, ".nfmt") && stricmp(p, ".base") && stricmp(p, ".mem")) { fprintf(stderr, "%s : unknown format type.\n", av[1]); return 1; } *p = '\0'; /* save stdout and stdin */ savo = _dup(fileno(stdout)); savi = _dup(fileno(stdin)); /* connect stdout to stderr */ _dup2(fileno(stderr), fileno(stdout)); /* connect stdin to nul device */ if(!(fnul = fopen("nul", "r"))) { fprintf(stderr, "Cannot open nul device to read\n"); exit(100); } _dup2(fileno(fnul), fileno(stdin)); /* COMMAND */ strcpy(fullbin, texbindir); strcat(fullbin, "fmtutil.exe"); fprintf(stderr, "Running the command %s\n", fullbin); _spawnlp(_P_WAIT, fullbin, "fmtutil", "--byfmt", av[1], NULL); /* END COMMAND */ /* return to original stdout and stdin */ _dup2(savo, fileno(stdout)); close(savo); _dup2(savi, fileno(stdin)); close(savi); /* close nul device */ fclose(fnul); fmtname = kpse_find_file(orgname , kpse_fmt_format, 0); if(fmtname) { printf("%s\n", fmtname); free(fmtname); } return 0; }
int main (int argc, string *argv) { int getopt_return_val; int option_index = 0; name_program = xbasename(argv[0]); if (!strcmp(name_program, "ofm2opl") || !strcmp(name_program, "OFM2OPL.EXE")) { program = PROG_OFM2OPL; name_help = OFM2OPLHELP; name_program = "ofm2opl"; name_msg = "This is ofm2opl, Version 2.0"; no_files = 2; files[0] = &name_ofm; files[1] = &name_opl; suffixes[0] = "ofm"; suffixes[1] = "opl"; full_suffixes[0] = ".ofm"; full_suffixes[1] = ".opl"; } else if (!strcmp(name_program, "opl2ofm") || !strcmp(name_program, "OPL2OFM.EXE")) { program = PROG_OPL2OFM; name_help = OPL2OFMHELP; name_program = "opl2ofm"; name_msg = "This is opl2ofm, Version 2.0"; no_files = 2; files[0] = &name_opl; files[1] = &name_ofm; suffixes[0] = "opl"; suffixes[1] = "ofm"; full_suffixes[0] = ".opl"; full_suffixes[1] = ".ofm"; } else if (!strcmp(name_program, "ovp2ovf") || !strcmp(name_program, "OVP2OVF.EXE")) { program = PROG_OVP2OVF; name_help = OVP2OVFHELP; name_program = "ovp2ovf"; name_msg = "This is ovp2ovf, Version 2.0"; no_files = 3; files[0] = &name_ovp; files[1] = &name_ovf; files[2] = &name_ofm; suffixes[0] = "ovp"; suffixes[1] = "ovf"; suffixes[2] = "ofm"; full_suffixes[0] = ".ovp"; full_suffixes[1] = ".ovf"; full_suffixes[2] = ".ofm"; } else if (!strcmp(name_program, "ovf2ovp") || !strcmp(name_program, "OVF2OVP.EXE")) { program = PROG_OVF2OVP; name_help = OVF2OVPHELP; name_program = "ovf2ovp"; name_msg = "This is ovf2ovp, Version 2.0"; no_files = 3; files[0] = &name_ovf; files[1] = &name_ofm; files[2] = &name_ovp; suffixes[0] = "ovf"; suffixes[1] = "ofm"; suffixes[2] = "ovp"; full_suffixes[0] = ".ovf"; full_suffixes[1] = ".ofm"; full_suffixes[2] = ".ovp"; } else { fprintf(stderr , "Unrecognized program: %s\n", name_program); fprintf(stderr , "This binary supports ofm2opl, opl2ofm, ovf2ovp, and ovp2ovf\n"); exit(1); } kpse_set_program_name(name_program, NULL); kpse_init_prog(uppercasify(name_program), 0, nil, nil); do { getopt_return_val = getopt_long_only(argc, argv, "", long_options, &option_index) ; if (getopt_return_val == -1) { ; } else if ( getopt_return_val == 63 ) { usage (name_program); } else if (!strcmp(long_options[option_index].name, "help")) { usagehelp (name_help, NULL); } else if (!strcmp(long_options[option_index ].name, "version")) { printversionandexit(name_msg, nil, "J. Plaice, Y. Haralambous, D.E. Knuth", nil); } else if (!strcmp(long_options[option_index ].name, "char-format")) { if (!strcmp(optarg, "ascii")) char_format = CHAR_CODE_ASCII; else if (!strcmp(optarg, "num")) char_format = CHAR_CODE_NUM; else warning_s("Bad character code format (%s)", optarg); } else if (!strcmp(long_options[option_index ].name, "num-format")) { if (!strcmp(optarg, "hex")) num_format = NUM_CODE_HEX; else if (!strcmp(optarg, "octal")) num_format = NUM_CODE_OCTAL; else warning_s("Bad number code format (%s)", optarg); } else if (!strcmp(long_options[option_index ].name, "text-format")) { if (!strcmp(optarg, "upper")) text_format = TEXT_CODE_UPPER; else if (!strcmp(optarg, "mixed")) text_format = TEXT_CODE_MIXED; else warning_s("Bad text code format (%s)", optarg); } } while (getopt_return_val != -1); if (((argc-optind) > no_files) || ((argc-optind) < 1)) { fprintf(stderr , "%s: %s\n", name_program, no_files == 2 ? "Need one or two file arguments." : "Need one to three file arguments."); usage (name_program); } *(files[0]) = extend_filename(cmdline(optind) , suffixes[0]); if (optind+2 <= argc) { *(files[1]) = extend_filename(cmdline(optind+1) , suffixes[1]); if (no_files == 3) { if (optind+3 <= argc) { *(files[2]) = extend_filename(cmdline(optind+2) , suffixes[2]); } else if (program == PROG_OVP2OVF) { *(files[2]) = extend_filename(cmdline(optind+1), suffixes[2]); } } } else if (program != PROG_OFM2OPL) { *(files[1]) = basenamechangesuffix(*(files[0]), full_suffixes[0], full_suffixes[1]); if ((no_files == 3) && (program == PROG_OVP2OVF)) { *(files[2]) = basenamechangesuffix(*(files[0]), full_suffixes[0], full_suffixes[2]); } } switch(program) { case PROG_OFM2OPL: { file_ofm = kpse_open_file(name_ofm, kpse_ofm_format); read_in_whole(&ofm, &length_ofm, file_ofm, name_ofm); (void)fclose(file_ofm); if (name_opl==NULL) file_opl = stdout; else rewrite(file_opl, name_opl); file_output = file_opl; parse_ofm(FALSE); break; } case PROG_OVF2OVP: { file_ovf = kpse_open_file(name_ovf, kpse_ovf_format); read_in_whole(&ovf, &length_ovf, file_ovf, name_ovf); (void)fclose(file_ovf); file_ofm = kpse_open_file(name_ofm, kpse_ofm_format); read_in_whole(&ofm, &length_ofm, file_ofm, name_ofm); (void)fclose(file_ofm); if (name_ovp==NULL) file_ovp = stdout; else rewrite(file_ovp, name_ovp); file_output = file_ovp; parse_ofm(TRUE); break; } case PROG_OPL2OFM: { file_opl = kpse_open_file(name_opl, kpse_opl_format); rewritebin(file_ofm, name_ofm); init_tables(); yyin = file_opl; (void)yyparse(); output_ofm_file(); (void)fclose(file_ofm); break; } case PROG_OVP2OVF: { file_ovp = kpse_open_file(name_ovp, kpse_ovp_format); rewritebin(file_ovf, name_ovf); rewritebin(file_ofm, name_ofm); init_tables(); yyin = file_ovp; (void)yyparse(); output_ofm_file(); /*(void)fclose(file_ofm);*/ output_ovf_file(); (void)fclose(file_ovf); break; } default: {exit(1);} } exit(0); }
int main (int ac, char **av) { char rbuff[TBUF]; char buff[TBUF]; char savebuff[TBUF]; char cmd[TBUF]; char mffile[TBUF]; char *arg[4]; static char execfile[TBUF]; char kpsedot[TBUF]; char currdir[TBUF]; char *tmp; int cdrive, tdrive; FILE *fr, *fw, *fnul; int i, savo, savi; char *p, *fp, *fpp; int issetdest; char fontname[TBUF]; char texbindir[TBUF]; char fullbin[TBUF]; kpse_set_program_name (av[0], NULL); progname = kpse_program_name; /* * get tex binary dir * */ p = kpse_var_value("SELFAUTOLOC"); if(p == 0) { fprintf(stderr, "I cannot get SELFAUTOLOC\n"); exit(100); } strcpy(texbindir, p); free(p); for(p=texbindir; *p; p++) { if(*p == '/') *p = '\\'; } *p = '\\'; *(p+1) = '\0'; tmp = getenv ("TEMP"); if (!tmp) tmp = getenv ("TMP"); if (!tmp) tmp = getenv ("TMPDIR"); if (!tmp) { fprintf (stderr, "Please define TEMP | TMP | TMPDIR.\n"); return (100); } tmp = xstrdup(tmp); for (fpp = tmp; *fpp; fpp++) { if (IS_KANJI(fpp)) fpp++; else if (*fpp == '\\') *fpp = '/'; } /* issetdest = 0 : TDS issetdest = 1 : user setting issetdest = 2 : current directory */ issetdest = 0; if (ac < 2) { usage (); free(tmp); return (100); } if ((!strcmp (av[1], "--version")) || (!strcmp (av[1], "-version"))) { version (); free(tmp); return (100); } if ((!strcmp (av[1], "--help")) || (!strcmp (av[1], "-help"))) { help (); free(tmp); return (100); } for (i = 0; i < 4; i++) arg[i] = (char *) malloc (TBUF); if ((!strcmp (av[1], "--destdir")) || (!strcmp (av[1], "-destdir"))) { if (ac != 4) { usage (); relmem (arg); free(tmp); return (100); } issetdest = 1; if (strlen(av[2]) > TBUF - 1 || strlen(av[3]) > TBUF - 1) { fprintf (stderr, "Too long a string.\n"); return (100); } strcpy (buff, av[2]); strcpy (fontname, av[3]); for (p = buff; *p; p++) { if (IS_KANJI(p)) p++; else if (*p == '\\') *p = '/'; } } else { if (strlen(av[1]) > TBUF - 1) { fprintf (stderr, "Too long a string.\n"); return (100); } strcpy (fontname, av[1]); } /* fontname = font name */ if ((p = strrchr (fontname, '.'))) *p = '\0'; /* mffile is METAFONT file name */ strcpy (mffile, fontname); strcat (mffile, ".mf"); if (!(fp = kpse_var_value ("MFINPUTS"))) { fprintf (stderr, "Cannot get value of MFINPUTS\n"); relmem (arg); free(tmp); return (100); } free (fp); xputenv("MKTEXMF", "1"); if (!(p = kpse_find_file (mffile, kpse_mf_format, 1))) { fprintf (stderr, "Cannot find %s.\n", mffile); relmem (arg); free(tmp); return (100); } fpp = _getcwd (currdir, TBUF); if (!fpp) { fprintf (stderr, "Failed to get current working directory.\n"); relmem (arg); free(tmp); return (100); } for (fpp = currdir; *fpp; fpp++) { if (IS_KANJI(fpp)) fpp++; else if (*fpp == '\\') *fpp = '/'; } i = (int)strlen (currdir); if (currdir[i - 1] == '/') currdir[i - 1] = '\0'; strcpy (kpsedot, "KPSE_DOT=.;"); strcat (kpsedot, currdir); _putenv (kpsedot); if ((p[0] == '.') && (p[1] == '/') && (issetdest != 1)) { issetdest = 2; strcpy (buff, currdir); } if (issetdest == 0) { /* now path of ${name}.mf is in p */ strcpy (arg[0], "Dummy"); strcpy (arg[1], "tfm"); strcpy (arg[2], p); if (!(p = getdestdir (3, arg))) { fprintf (stderr, "Cannot get destination directory name.\n"); relmem (arg); free(tmp); return (100); } strcpy (buff, p); } /* Now buff is the destdir */ p = buff; i = (int)strlen (p); if (p[i - 1] != '/') strcat (p, "/"); strcat (p, fontname); strcat (p, ".tfm"); /* now p (or buff) is the full path name of the tfm font */ /* check if it exists */ if (_access (p, 0) == 0) { fprintf (stderr, "%s exists\n", p); printf ("%s\n", p); relmem (arg); free(tmp); return (0); } cdrive = _getdrive (); if (tmp[1] == ':') { tdrive = tolower (*tmp) - 'a' + 1; _chdrive (tdrive); } _chdir (tmp); /* save stdout and stdin */ savo = _dup (fileno (stdout)); savi = _dup (fileno (stdin)); /* connect stdout to stderr */ _dup2 (fileno (stderr), fileno (stdout)); /* connect stdin to nul device */ if (!(fnul = fopen ("nul", "r"))) { fprintf (stderr, "Cannot open nul device to read\n"); relmem (arg); _chdrive (cdrive); _chdir (currdir); free(tmp); return (100); } _dup2 (fileno (fnul), fileno (stdin)); /* METAFONT command line */ strcpy (cmd, "--progname=mf --base=mf "); strcat (cmd, "\\mode:=ljfour; \\mag:=1; nonstopmode; input "); strcat (cmd, fontname); strcat (cmd, ";"); strcpy (execfile, "mf-nowin.exe"); fprintf (stderr, "%s %s\n", execfile, cmd); strcpy(fullbin, texbindir); strcat(fullbin, execfile); (void) _spawnlp (_P_WAIT, fullbin, execfile, cmd, NULL); /* return to original stdout and stdin */ _dup2 (savo, fileno (stdout)); close (savo); _dup2 (savi, fileno (stdin)); close (savi); /* close nul device */ fclose (fnul); /* check consistency */ strcpy (cmd, fontname); strcat (cmd, ".600gf"); if (_access (cmd, 0) == -1) { fprintf (stderr, "METAFONT failed to make gf font.\n"); relmem (arg); _chdrive (cdrive); _chdir (currdir); free(tmp); return (100); } remove (cmd); strcpy (cmd, fontname); strcat (cmd, ".tfm"); /* copy the tfm file */ if (!(fr = fopen (cmd, "rb"))) { fprintf (stderr, "Cannot open %s to read\n", cmd); _chdrive (cdrive); _chdir (currdir); relmem (arg); free(tmp); return (100); } if (!(fw = fopen (buff, "wb"))) { fprintf (stderr, "Cannot open %s to write\n", buff); _chdrive (cdrive); _chdir (currdir); relmem (arg); free(tmp); return (100); } while ((i = (int)fread (rbuff, 1, TBUF, fr))) fwrite (rbuff, 1, i, fw); fclose (fr); fclose (fw); strcpy(savebuff, buff); /* copy log file into the current directory in the case that issetdest == 2, because feynmf package requires the log file. */ if(issetdest == 2) { i = (int)strlen(buff); if(i > 3) { i -= 4; buff[i] = '\0'; strcat(buff, ".log"); strcpy(cmd, fontname); strcat(cmd, ".log"); if (!(fr = fopen (cmd, "rb"))) { fprintf (stderr, "Cannot open %s to read\n", cmd); _chdrive (cdrive); _chdir (currdir); relmem (arg); free(tmp); return (100); } if (!(fw = fopen (buff, "wb"))) { fprintf (stderr, "Cannot open %s to write\n", buff); _chdrive (cdrive); _chdir (currdir); relmem (arg); free(tmp); return (100); } while ((i = (int)fread (rbuff, 1, TBUF, fr))) fwrite (rbuff, 1, i, fw); fclose (fr); fclose (fw); } } relmem (arg); if(issetdest != 2) mktexupd (savebuff); /* erase files */ strcpy (cmd, fontname); strcat (cmd, ".log"); remove (cmd); strcpy (cmd, fontname); strcat (cmd, ".tfm"); remove (cmd); _chdrive (cdrive); _chdir (currdir); /* send message to Kpathsea */ printf ("%s\n", savebuff); free(tmp); return (0); }
void ppl_kpse_wrap_init() { #ifdef HAVE_KPATHSEA kpse_set_program_name("dvips", "dvips"); #else const char *FileTypes[3] = {"tfm","pfa","pfb"}; int i, j, k, l, s, TrialNumber, fstdout; struct timespec waitperiod; // A time.h timespec specifier for a wait of zero seconds fd_set readable; sigset_t sigs; sigemptyset(&sigs); sigaddset(&sigs,SIGCHLD); for (j=0; j<3; j++) { ppl_kpse_PathList[j][0] = NULL; for (i=0; i<MAX_PATHS; i++) ppl_kpse_PathRecursive[j][i]=0; } for (j=0; j<3; j++) { ForkKpseWhich(FileTypes[j] , &fstdout); // Wait for kpsewhich process's stdout to become readable. Get bored if this takes more than a second. TrialNumber = 1; while (1) { waitperiod.tv_sec = 1; waitperiod.tv_nsec = 0; FD_ZERO(&readable); FD_SET(fstdout, &readable); if (pselect(fstdout+1, &readable, NULL, NULL, &waitperiod, NULL) == -1) { if ((errno==EINTR) && (TrialNumber<3)) { TrialNumber++; continue; } ppl_error(ERR_INTERNAL, -1, -1, "Failure of the pselect() function whilst waiting for kpsewhich to return data."); return; } break; } if (!FD_ISSET(fstdout , &readable)) { ppl_error(ERR_GENERAL, -1, -1, "Got bored waiting for kpsewhich to return data."); sigprocmask(SIG_UNBLOCK, &sigs, NULL); continue; } // Read data back from kpsewhich process if ((i = read(fstdout, ppl_kpse_FilePaths[j], LSTR_LENGTH)) < 0) { ppl_error(ERR_GENERAL, -1, -1, "Could not read from pipe to kpsewhich."); sigprocmask(SIG_UNBLOCK, &sigs, NULL); continue; } ppl_kpse_FilePaths[j][i] = '\0'; close(fstdout); sigprocmask(SIG_UNBLOCK, &sigs, NULL); // Split up returned data into a list of paths for (i=s=k=0; ppl_kpse_FilePaths[j][i]!='\0'; i++) { if (ppl_kpse_FilePaths[j][i]=='!') { if (!s) ppl_kpse_PathRecursive[j][k]=1; continue; } if ((ppl_kpse_FilePaths[j][i]==':') || (ppl_kpse_FilePaths[j][i]=='\n')) { for (l=i-1; ((l>=0)&&(ppl_kpse_FilePaths[j][l]==PATHLINK[0])); l--) ppl_kpse_FilePaths[j][l]='\0'; s=0; ppl_kpse_FilePaths[j][i]='\0'; continue; } if (!s) { s=1; ppl_kpse_PathList[j][k++] = ppl_kpse_FilePaths[j]+i; if (k==MAX_PATHS) { k--; ppl_error(ERR_GENERAL, -1, -1, "kpsewhich returned too many paths"); } } } ppl_kpse_PathList[j][k] = NULL; // If debugging, log a list of the paths that we've extracted if (DEBUG) { for (i=0; ppl_kpse_PathList[j][i]!=NULL; i++) { sprintf(temp_err_string, "Using path for %s files: <%s> [%srecursive]", FileTypes[j], ppl_kpse_PathList[j][i], ppl_kpse_PathRecursive[j][i]?"":"non-"); ppl_log(temp_err_string); } } } #endif return; }
int main P2C(int, argc, string *, argv) { register char *cp; int blanks_done, indent, i; char *program_name = ""; kpse_set_program_name (argv[0], NULL); /* In case we use FATAL. */ for (i = 1; i < argc; i++) { if (STREQ(argv[i],"-t")) tex = true; else program_name = argv[i]; } while (fgets (buf, BUFSIZ, stdin)) { remove_newline (buf); blanks_done = false; for (cp = buf; *cp; ++cp) ; while (cp != buf && *--cp == ' ') ; while (*cp == '.') { join (cp + 1); while (*cp) ++cp; while (*--cp == ' ') ; } for (cp = buf, indent = 0; *cp == ' ' || *cp == '\t'; ++cp) { if (*cp == ' ') indent++; else indent += 8; } if (!*cp) { /* All blanks, possibly with "{" */ puts (buf); continue; } if (*cp == '{') { do_blanks (indent); putchar ('{'); ++cp; while (*cp == ' ' || *cp == '\t') ++cp; blanks_done = true; if (!*cp) { putchar ('\n'); continue; } } if (!blanks_done) do_blanks (indent); if (strncmp (cp, "read ( input", 12) == 0) { char variable_name[20]; if (sscanf (cp, "read ( input , %s )", variable_name) != 1) { fprintf (stderr, "sscanf failed\n"); uexit (1); } printf ("%s = getint();\n", variable_name); continue; } if (strncmp (cp, "lab", 3) == 0 && strchr (cp, ':')) { do { putchar (*cp); } while (*cp++ != ':'); while (*cp == ' ') ++cp; putchar (' '); } if (strncmp (cp, "else write", 10) == 0) { puts ("else"); do_blanks (indent); cp += 5; while (*cp == ' ') ++cp; } if (bare (cp, '{')) { while (*cp != '{') { putchar (*cp); ++cp; } ++cp; puts ("{"); indent += 4; do_blanks (indent); while (*cp == ' ') ++cp; } if (strncmp (cp, "write (", 7) && strncmp (cp, "writeln (", 9)) { /* if not a write/writeln, just copy it to stdout and continue */ puts (cp); continue; } cmd = cp; while (!whole (buf)) /* make sure we have whole stmt */ { fgets (&buf[strlen (buf)], BUFSIZ - strlen (buf), stdin); remove_newline (buf); } while (*cp != '(') ++cp; ++cp; while (*(cp + 1) == ' ') ++cp; /* Some writes start with a variable, instead of a file. */ if (*(cp + 1) == '"' || *(cp + 1) == '\'' || strncmp (cp + 1, "buffer", 6) == 0 || strncmp (cp + 1, "xchr", 4) == 0 || strncmp (cp + 1, "k ,", 3) == 0 || strncmp (cp + 1, "s ,", 3) == 0 || strncmp (cp + 1, "dig", 3) == 0 || strncmp (cp + 1, "HEX", 3) == 0 || strncmp (cp + 1, "versionstring", 13) == 0 || strncmp (cp + 1, "kpathseaversionstring", 21) == 0 ) strcpy (filename, "stdout"); else { file = filename; while (*cp != ',' && *cp != ')') *file++ = *cp++; *file = '\0'; } if (*cp == ')') { printf ("putc%s ('\\n', %s);\n", oem, filename); continue; } argp = ++cp; as = args; while (*cp == ' ') ++cp; while (*cp != ')') { if (*cp == '\'' || strncmp (cp, "xchr", 4) == 0 || (strncmp (cp ,"HEX", 3) == 0 && (STREQ (program_name, "ofm2opl") || STREQ (program_name, "opl2ofm") || STREQ (program_name, "ovp2ovf") || STREQ (program_name, "ovf2ovp"))) || strncmp (cp, "ASCII04", 7) == 0 || strncmp (cp, "ASCII1", 6) == 0 || strncmp (cp, "ASCIIall", 8) == 0 || strncmp (cp, "months", 6) == 0 || strncmp (cp, "nameoffile", 10) == 0 || (strncmp (cp, "buffer", 6) == 0 && (STREQ (program_name, "vptovf") || STREQ (program_name, "pltotf") || STREQ (program_name, "ovp2ovf") || STREQ (program_name, "ofm2opl"))) || (((strncmp (cp, "buf", 3) == 0 || strncmp (cp, "xdig", 4) == 0 || strncmp (cp, "xext", 4) == 0 || strncmp (cp, "xhyf", 4) == 0) && STREQ (program_name, "patgen"))) ) { *as++ = '%'; *as++ = 'c'; if (tex && strncmp (cp, "xchr", 4) == 0) { *cp = 'X'; cp = strchr (cp, '['); *cp = '('; cp = advance_cp(cp,1); *cp++ = ')'; } else if (*cp == '\'') cp += 2; } else if (*cp == '"') { *as++ = '%'; *as++ = 's'; while (*++cp != '"') /* skip to end of string */ if (*cp == '\\') ++cp; /* allow \" in string */ } /* More kludge -- versionstring is a string, not a number, so we have to use %s. */ else if (strncmp (cp, "versionstring", 13) == 0) { *as++ = '%'; *as++ = 's'; } else { *as++ = '%'; *as++ = 'l'; *as++ = 'd'; cp = insert_long (cp); cp = skip_balanced (cp); /* It's a numeric expression */ } while (*cp != ',' && *cp != ')') ++cp; while (*cp == ',' || *cp == ' ') ++cp; } if (strncmp (cmd, "writeln", 7) == 0) { *as++ = '\\'; *as++ = 'n'; } *as = '\0'; if (strcmp (args, "%c") == 0) { for (as = argp; *as; ++as) ; while (*--as != ')') ; *as = '\0'; printf ("putc%s (%s, %s);\n", oem, argp, filename); } else if (STREQ (args, "%s")) printf ("Fputs%s (%s, %s\n", oem, filename, argp); else printf ("fprintf%s (%s, \"%s\", %s\n", oem, filename, args, argp); } return EXIT_SUCCESS; }
void #line 50 "./cwebdir/comm-w2c.ch" common_init P1H(void) #line 92 "./cwebdir/common.w" { #line 56 "./cwebdir/comm-w2c.ch" /*32:*/ #line 621 "./cwebdir/common.w" name_dir->byte_start= byte_ptr= byte_mem; name_ptr= name_dir+1; name_ptr->byte_start= byte_mem; /*:32*//*36:*/ #line 655 "./cwebdir/common.w" for(h= hash;h<=hash_end;*h++= NULL); /*:36*//*43:*/ #line 737 "./cwebdir/common.w" root= NULL; /*:43*/ #line 56 "./cwebdir/comm-w2c.ch" ; /*24:*/ #line 187 "./cwebdir/comm-w2c.ch" kpse_set_program_name(argv[0],"cweb"); #line 473 "./cwebdir/common.w" /*:24*/ #line 57 "./cwebdir/comm-w2c.ch" ; #line 94 "./cwebdir/common.w" /*70:*/ #line 1233 "./cwebdir/common.w" #line 486 "./cwebdir/comm-w2c.ch" show_banner= show_happiness= show_progress= 1; kpathsea_debug= 0; #line 1235 "./cwebdir/common.w" /*:70*/ #line 94 "./cwebdir/common.w" ; /*80:*/ #line 1377 "./cwebdir/common.w" scan_args(); if(program==ctangle){ if((C_file= fopen(C_file_name,"w"))==NULL) fatal("! Cannot open output file ",C_file_name); } else{ if((tex_file= fopen(tex_file_name,"w"))==NULL) fatal("! Cannot open output file ",tex_file_name); } /*:80*/ #line 95 "./cwebdir/common.w" ; }
int main(int argc, char **argv) { int i,j,cc=0,startpagenum=-1,ecount=0,chkopt=1; const char *envbuff; UVersionInfo icuVersion; char icu_version[U_MAX_VERSION_STRING_LENGTH] = ""; #ifdef WIN32 char **av; int ac; _setmaxstdio(2048); #endif kpse_set_program_name(argv[0], "upmendex"); #ifdef WIN32 file_system_codepage = CP_UTF8; is_cp932_system = 0; if (get_command_line_args_utf8("utf-8", &ac, &av)) { argv = av; argc = ac; } #endif kp_ist.var_name = "INDEXSTYLE"; kp_ist.path = DEFAULT_INDEXSTYLES; /* default path. */ kp_ist.suffix = "ist"; KP_entry_filetype(&kp_ist); kp_dict.var_name = "INDEXDICTIONARY"; kp_dict.path = DEFAULT_INDEXDICTS; /* default path */ kp_dict.suffix = "dict"; KP_entry_filetype(&kp_dict); /* check options */ for (i=1,j=0; i<argc && j<256; i++) { if ((argv[i][0]=='-')&&(strlen(argv[i])>=2)&&chkopt) { switch (argv[i][1]) { case 'c': bcomp=1; break; case 'd': if ((argv[i][2]=='\0')&&(i+1<argc)) { dicfile=xstrdup(argv[++i]); } else { dicfile=xstrdup(&argv[i][2]); } break; case 'f': force=1; break; case 'g': gflg=1; break; case 'i': fsti=1; break; case 'l': lorder=1; break; case 'o': if ((argv[i][2]=='\0')&&(i+1<argc)) { indfile=xstrdup(argv[++i]); } else { indfile=xstrdup(&argv[i][2]); } break; case 'p': if ((argv[i][2]=='\0')&&(i+1<argc)) { i++; if (strcmp(argv[i],"any")==0) fpage=2; else if (strcmp(argv[i],"odd")==0) fpage=3; else if (strcmp(argv[i],"even")==0) fpage=4; else { fpage=1; startpagenum=atoi(argv[i]); } } else { if (strcmp(&argv[i][2],"any")==0) fpage=2; else if (strcmp(&argv[i][2],"odd")==0) fpage=3; else if (strcmp(&argv[i][2],"even")==0) fpage=4; else { fpage=1; startpagenum=atoi(&argv[i][2]); } } break; case 'q': verb=0; break; case 't': if ((argv[i][2]=='\0')&&(i+1<argc)) { logfile=xstrdup(argv[++i]); } else { logfile=xstrdup(&argv[i][2]); } break; case 'r': prange=0; break; case 's': if ((argv[i][2]=='\0')&&(i+1<argc)) { styfile=xstrdup(argv[++i]); } else { styfile=xstrdup(&argv[i][2]); } break; case 'v': debug=1; break; case '-': if (strlen(argv[i])==2) chkopt=0; if (strcmp(argv[i],"--help")!=0) break; default: u_getVersion(icuVersion); u_versionToString(icuVersion, icu_version); fprintf(stderr,"upmendex - index processor, %s (%s).\n",VERSION, TL_VERSION); fprintf(stderr," Copyright 2009 ASCII MEDIA WORKS, 2015-2016 TANAKA Takuji\n"); fprintf(stderr," using ICU version %s\n",icu_version); fprintf(stderr,"usage:\n"); fprintf(stderr,"%% upmendex [-ilqrcgf] [-s sty] [-d dic] [-o ind] [-t log] [-p no] [--] [idx0 idx1 ...]\n"); fprintf(stderr,"options:\n"); fprintf(stderr,"-i use stdin as the input file.\n"); fprintf(stderr,"-l use letter ordering.\n"); fprintf(stderr,"-q quiet mode.\n"); fprintf(stderr,"-r disable implicit page formation.\n"); fprintf(stderr,"-c compress blanks. (ignore leading and trailing blanks.)\n"); fprintf(stderr,"-g make Japanese index head <%s>.\n", AKASATANAutf8); fprintf(stderr,"-f force to output unknown scripts.\n"); fprintf(stderr,"-s sty take sty as style file.\n"); fprintf(stderr,"-d dic take dic as dictionary file.\n"); fprintf(stderr,"-o ind take ind as the output index file.\n"); fprintf(stderr,"-t log take log as the error log file.\n"); fprintf(stderr,"-p no set the starting page number of index.\n"); fprintf(stderr,"idx... input files.\n"); exit(0); break; } } else { cc=strlen(argv[i]); if (cc<4) cc+=4; else if (strcmp(&argv[i][cc-4],".idx")) cc+=4; idxfile[j]=xmalloc(cc+1); strcpy(idxfile[j++],argv[i]); } } idxcount=j+fsti; /* check option errors */ if (idxcount==0) idxcount=fsti=1; if (styfile==NULL) { envbuff=kpse_var_value("INDEXDEFAULTSTYLE"); if (envbuff!=NULL) { styfile=xstrdup(envbuff); } } /* init hangul tumunja table */ u_strcpy(tumunja,GANADA); if (styfile!=NULL) styread(styfile); if (!indfile &&(idxcount-fsti>0)) { indfile=xmalloc(strlen(idxfile[0]+6)); for (i=strlen(idxfile[0]); i>=0; i--) { if (idxfile[0][i]=='.') { strncpy(indfile,idxfile[0],i); sprintf(&indfile[i],".ind"); break; } } if (i==-1) sprintf(indfile,"%s.ind",idxfile[0]); } if (!logfile && (idxcount-fsti > 0)) { logfile=xmalloc(strlen(idxfile[0]+6)); for (i=strlen(idxfile[0]); i>=0; i--) { if (idxfile[0][i]=='.') { strncpy(logfile,idxfile[0],i); sprintf(&logfile[i],".ilg"); break; } } if (i==-1) sprintf(logfile,"%s.ilg",idxfile[0]); } if (logfile && kpse_out_name_ok(logfile)) efp=fopen(logfile,"wb"); if(efp == NULL) { efp=stderr; logfile=xstrdup("stderr"); } set_icu_attributes(); if (strcmp(argv[0],"makeindex")==0) { verb_printf(efp,"This is Not `MAKEINDEX\', But `UPMENDEX\' %s (%s).\n", VERSION, TL_VERSION); } else { verb_printf(efp,"This is upmendex %s (%s).\n", VERSION, TL_VERSION); } /* init kanatable */ initkanatable(); /* read dictionary */ ecount+=dicread(dicfile); switch (letter_head) { case 0: case 1: if (gflg==1) { u_strcpy(atama,akasatana); } else { u_strcpy(atama,aiueo); } break; case 2: if (gflg==1) { u_strcpy(atama,AKASATANA); } else { u_strcpy(atama,AIUEO); } break; default: break; } /* read idx file */ lines=0; ecount=0; ind=xmalloc(sizeof(struct index)); for (i=0; i<idxcount-fsti; i++) { ecount+=idxread(idxfile[i],lines); } if (fsti==1) { ecount+=idxread(NULL,lines); } verb_printf(efp,"%d entries accepted, %d rejected.\n",acc,reject); if (ecount!=0) { verb_printf(efp,"%d errors, written in %s.\n",ecount,logfile); lines=0; } if (lines==0) { verb_printf(efp,"Nothing written in output file.\n"); if (efp!=stderr) fclose(efp); exit(255); } /* sort index */ verb_printf(efp,"Sorting index."); scount=0; wsort(ind,lines); verb_printf(efp,"...done(%d comparisons).\n",scount); /* sort pages */ verb_printf(efp,"Sorting pages."); scount=0; pagesort(ind,lines); verb_printf(efp,"...done(%d comparisons).\n",scount); /* get last page */ if ((fpage>1)&&(idxcount-fsti>0)) cc=lastpage(idxfile[0]); switch (fpage) { case 2: startpagenum=cc+1; break; case 3: if ((cc+1)%2==0) startpagenum=cc+2; else startpagenum=cc+1; break; case 4: if ((cc+1)%2==1) startpagenum=cc+2; else startpagenum=cc+1; break; default: break; } /* write indfile */ verb_printf(efp,"Making index file."); indwrite(indfile,ind,startpagenum); verb_printf(efp,"...done.\n"); if (idxcount-fsti==0) indfile=xstrdup("stdout"); verb_printf(efp,"%d warnings, written in %s.\n",warn,logfile); verb_printf(efp,"Output written in %s.\n",indfile); if (efp!=stderr) fclose(efp); return 0; }
/* This function is deprecated, because when we pretend to have a different name it will look for _that_ name in the PATH if program_invocation_name is not defined. */ void kpse_set_progname P1C(const_string, argv0) { kpse_set_program_name (argv0, NULL); }
void initpykpathsea(void) { Py_InitModule("pykpathsea", pykpathsea_methods); kpse_set_program_name("dvips", "dvips"); }
int main (int ac, char **av) { static char execfile[SBUF]; char rbuff[LBUF]; char buff[LBUF]; char cmd[LBUF]; char mfname[TBUF]; char tfname[TBUF]; char pkname[TBUF]; char name[TBUF]; char dpi[TBUF]; char ydpi[TBUF]; char bdpi[TBUF]; char mag[TBUF]; char mode[TBUF]; char destdir[SBUF]; char designsize[64]; char *arg[4]; char currdir[SBUF]; char kpsedot[SBUF]; char *tmp; int cdrive, tdrive; FILE *fr, *fw, *fnul, *tfmfileptr; int i, savo, savi, ret; int style; int issetdest; int app; int oldform; int ps2pkok; char *env; char *p, *fpp; double Xdpi, Ydpi; char texname[TBUF], pfbname[TBUF], slant[TBUF], extend[TBUF], encname[TBUF]; char texbindir[256]; char fullbin[512]; /* * style = 0 : MAKETEXPK_STYLE undefined or other than dosnames * style = 1 : MAKETEXPK_STYLE = dosnames */ /* * issetdest = 0 : no destdir * issetdest = 1 : destdir * issetdest = 2 : current working dir */ /* * app = 0 : mf * app = 1 : ps2pk * app = 2 : gsftopk * app = 3 : ttf2pk * app = 4 : hbf2gf */ /* * oldform = 0 : newform of the command line * oldform = 1 : oldform of the command line */ /* * TEMP | TMP | TMPDIR (necessary) * */ tmp = getenv ("TEMP"); if (!tmp) tmp = getenv ("TMP"); if (!tmp) tmp = getenv ("TMPDIR"); if (!tmp) { tpkerr ("Please define TEMP | TMP | TMPDIR."); return (100); } tmp = xstrdup(tmp); /* * normalize directory separators */ normalize (tmp); for (i = 0; i < 4; i++) arg[i] = (char *) malloc (SBUF); kpse_set_program_name (av[0], NULL); progname = kpse_program_name; /* * get tex binary dir * */ p = kpse_var_value("SELFAUTOLOC"); if(p == 0) { fprintf(stderr, "I cannot get SELFAUTOLOC\n"); exit(100); } strcpy(texbindir, p); free(p); for(p=texbindir; *p; p++) { if(*p == '/') *p = '\\'; } *p = '\\'; *(p+1) = '\0'; if (ac < 2) { usage (); relmem (arg); free(tmp); return (100); } issetdest = 0; ps2pkok = 0; /* * oldform or newform ? * */ if (av[1][0] == '-') oldform = 0; else oldform = 1; /* * Old form of the command line */ if (oldform == 1) { if (ac < 5) { usage (); relmem (arg); free(tmp); return (100); } if((strlen(av[1]) > TBUF -1 ) || (strlen(av[2]) > TBUF -1 ) || (strlen(av[3]) > TBUF -1 ) || (strlen(av[4]) > TBUF -1 )) { fprintf(stderr, "\nToo long a string.\n"); free(tmp); return 100; } strcpy (name, av[1]); strcpy (dpi, av[2]); strcpy (bdpi, av[3]); strcpy (mag, av[4]); if (ac > 5) { if(strlen(av[5]) > TBUF -1) { fprintf(stderr, "\nToo long a string.\n"); free(tmp); return 100; } strcpy (mode, av[5]); } else mode[0] = '\0'; } else { /* * New form of the command line */ name[0] = dpi[0] = bdpi[0] = mag[0] = mode[0] = destdir[0] = '\0'; i = 1; while (i < ac) { if(strlen(av[i]) > TBUF - 1) { fprintf(stderr, "\nToo long a string.\n"); free(tmp); return 100; } if (av[i][0] != '-') { strcpy (name, av[i]); break; } if (!strcmp (av[i], "--dpi") || !strcmp (av[i], "-dpi")) { i++; if (i >= ac) { tpkerr ("Invalid arguments."); relmem (arg); free(tmp); return (100); } strcpy (dpi, av[i]); i++; } else if (!strcmp (av[i], "--bdpi") || !strcmp (av[i], "-bdpi")) { i++; if (i >= ac) { tpkerr ("Invalid arguments."); relmem (arg); free(tmp); return (100); } strcpy (bdpi, av[i]); i++; } else if (!strcmp (av[i], "--mag") || !strcmp (av[i], "-mag")) { i++; if (i >= ac) { tpkerr ("Invalid arguments."); relmem (arg); free(tmp); return (100); } strcpy (mag, av[i]); i++; } else if (!strcmp (av[i], "--mfmode") || !strcmp (av[i], "-mfmode")) { i++; if (i >= ac) { tpkerr ("Invalid arguments."); relmem (arg); free(tmp); return (100); } strcpy (mode, av[i]); i++; } else if (!strcmp (av[i], "--destdir") || !strcmp (av[i], "-destdir")) { i++; if (i >= ac) { tpkerr ("Invalid arguments."); relmem (arg); free(tmp); return (100); } strcpy (destdir, av[i]); issetdest = 1; i++; } else if (!strcmp (av[i], "--version") || !strcmp (av[i], "-version")) { version (); relmem (arg); free(tmp); return (0); } else if (!strcmp (av[i], "--help") || !strcmp (av[i], "-help")) { help (); relmem (arg); free(tmp); return (0); } else { tpkerr ("Argument error."); relmem (arg); free(tmp); return (100); } } } /* End of command line analysis */ env = kpse_var_value ("MAKETEXPK_STYLE"); if ((env == NULL) || !(*env) || (env && strcmp (env, "dosnames"))) { style = 0; } else style = 1; /* * Default program is mf */ app = 0; /* * check if mfmode and bdpi are consistent or not */ if (bdpi[0] && mode[0] && mode[0] != '/') { FILE *frd; char buff[128]; int len; strcpy (fullbin, texbindir); strcat (fullbin, "mf-nowin.exe \"\\mode:="); strcat (fullbin, mode); strcat (fullbin, ";mode_setup;message"); strcat (fullbin, "(decimal round pixels_per_inch);"); strcat (fullbin, "end. <nul\""); frd = popen (fullbin, "r"); if (!frd) { tpkerr ("I cannot find METAFONT.\n"); relmem (arg); free(tmp); return (100); } (void) fgets (buff, 126, frd); (void) fgets (buff, 126, frd); pclose (frd); system("del /Q mfput.*"); len = (int)strlen (buff); if (buff[len - 1] == '\n') { buff[len - 1] = '\0'; if (buff[len - 2] == '\r') buff[len - 2] = '\0'; } if (strcmp (bdpi, buff)) { fprintf(stderr, "mode_dpi %s and bdpi %s are inconsistent.\n", buff, bdpi); fprintf(stderr, "therefore I reset mfmode.\n"); mode[0] = '\0'; } } /* * determine mfmode if not given */ if (mode[0] == 0 || mode[0] == '/') { if (bdpi[0] == 0) { tpkerr ("Cannot determine the mode."); tpkerr ("I will try other possibilities."); app = 1; } else { strcpy (rbuff, "MAKETEXPK_MODE_"); strcat (rbuff, bdpi); if ((env = kpse_var_value ("MAKETEXPK_MODE")) && *env) strcpy (mode, env); else if ((env = kpse_var_value (rbuff))) strcpy (mode, env); else if (!strcmp (bdpi, "85")) strcpy (mode, "sun"); else if (!strcmp (bdpi, "100")) strcpy (mode, "nextscrn"); else if (!strcmp (bdpi, "118")) strcpy (mode, "pcprevw"); else if (!strcmp (bdpi, "160")) strcpy (mode, "nectzo"); else if (!strcmp (bdpi, "180")) strcpy (mode, "toshiba"); else if (!strcmp (bdpi, "200")) strcpy (mode, "highfax"); else if (!strcmp (bdpi, "240")) strcpy (mode, "canonlbp"); else if (!strcmp (bdpi, "300")) strcpy (mode, "cx"); else if (!strcmp (bdpi, "320")) strcpy (mode, "neclm"); else if (!strcmp (bdpi, "360")) strcpy (mode, "epstylus"); else if (!strcmp (bdpi, "400")) strcpy (mode, "nexthi"); else if (!strcmp (bdpi, "600")) strcpy (mode, "ljfour"); else if (!strcmp (bdpi, "720")) strcpy (mode, "epscszz"); else if (!strcmp (bdpi, "800")) strcpy (mode, "lwpro"); else if (!strcmp (bdpi, "1000")) strcpy (mode, "lmaster"); else if (!strcmp (bdpi, "1200")) strcpy (mode, "ultre"); else if (!strcmp (bdpi, "1270")) strcpy (mode, "linoone"); else if (!strcmp (bdpi, "1800")) strcpy (mode, "vtftzz"); else if (!strcmp (bdpi, "2400")) strcpy (mode, "supre"); else if (!strcmp (bdpi, "2540")) strcpy (mode, "linotzzh"); else if (!strcmp (bdpi, "3386")) strcpy (mode, "linolttz"); else if (!strcmp (bdpi, "8000")) strcpy (mode, "dpdfezzz"); else if (!strcmp (bdpi, "9600")) strcpy (mode, "ibx"); else { tpkerr ("Cannot determine the mode."); tpkerr ("I will try other possibilities."); app = 1; } } } if (env) free (env); if (name[0] == 0) { tpkerr ("Font name is not given."); relmem (arg); free(tmp); return (100); } if ((p = strrchr (name, '.'))) *p = '\0'; strcpy (mfname, name); strcat (mfname, ".mf"); if (app == 0) { if (!(p = kpse_var_value ("MFINPUTS"))) { tpkerr ("Cannot get value of MFINPUTS."); relmem (arg); free(tmp); return (100); } free (p); xputenv("MKTEXMF", "1"); if (!(p = kpse_find_file (mfname, kpse_mf_format, 1))) { fprintf (stderr, "Cannot find %s .\n", mfname); tpkerr ("I try ps2pk --> gsftopk --> ttf2pk --> hbf2gf."); app = 1; } } if (app != 0) { strcpy (mode, "modeless"); strcpy (tfname, name); strcat (tfname, ".tfm"); if (!(p = kpse_var_value ("TFMFONTS"))) { tpkerr ("Cannot get value of TFMFONTS."); relmem (arg); free(tmp); return (100); } free (p); /* I don't try to create nonexisting tfm here. */ if (!(p = kpse_find_file (tfname, kpse_tfm_format, 0))) { fprintf (stderr, "Cannot find %s .\n", tfname); relmem (arg); free(tmp); return 100; } tfmfileptr = fopen (p, "rb"); if (!tfmfileptr) { fprintf (stderr, "I cannot open %s.\n", p); relmem (arg); free(tmp); return 100; } i = 256 * getc (tfmfileptr); i += getc (tfmfileptr); fclose (tfmfileptr); if ((i == 9) || (i == 11)) { fprintf (stderr, "Current font seems to be a Japanese one.\n"); fprintf (stderr, "I give up to create a PK font.\n"); relmem (arg); free(tmp); return 100; } } if ((p[0] == '.') && (p[1] == '/') && (issetdest != 1)) issetdest = 2; fpp = _getcwd (currdir, SBUF); if (!fpp) { fprintf (stderr, "Failed to get current working directory.\n"); relmem (arg); free(tmp); return (100); } normalize (currdir); i = (int)strlen (currdir); if (currdir[i - 1] == '/') currdir[i - 1] = '\0'; strcpy (kpsedot, "KPSE_DOT=.;"); strcat (kpsedot, currdir); _putenv (kpsedot); if (issetdest == 2) { strcpy (destdir, currdir); } if (issetdest == 0) { strcpy (arg[0], "Dummy"); strcpy (arg[1], "pk"); strcpy (arg[2], p); strcpy (arg[3], mode); if (!(p = getdestdir (4, arg))) { tpkerr ("Cannot get destination directory name."); relmem (arg); free(tmp); return (100); } strcpy (rbuff, p); } else strcpy (rbuff, destdir); /* * Change backslash into slash */ normalize (rbuff); p = rbuff; i = (int)strlen (p); if (p[i - 1] == '/') p[i - 1] = '\0'; if (issetdest) { if (!is_dir (p)) { fprintf (stderr, "Destination %s is not found.\n", p); relmem (arg); free(tmp); return (100); } } else if (!is_dir (p)) { if (make_dir (p)) { tpkerr ("Error in make_dir."); relmem (arg); free(tmp); return (100); } } strcpy (buff, p); p = buff; i = (int)strlen (p); if (p[i - 1] != '/') strcat (p, "/"); if (dpi[0] == 0) { tpkerr ("Cannot determine DPI."); relmem (arg); free(tmp); return (100); } if (style == 1 && issetdest != 2) { /* dosnames */ strcat (p, "dpi"); strcat (p, dpi); if (!is_dir (p)) { if (make_dir (p)) { tpkerr ("Error in make_dir."); relmem (arg); free(tmp); return (100); } } strcat (p, "/"); } strcat (p, name); strcat (p, "."); if (style != 1 || issetdest == 2) strcat (p, dpi); /* long suffix */ strcat (p, "pk"); /* Now buff and p is the full path name of pk file */ /* check the existence of pk file */ if (_access (p, 0) == 0) { fprintf (stderr, "%s exists.\n", p); relmem (arg); printf ("%s\n", p); free(tmp); return (0); } /* * Go to the temporary directory */ cdrive = _getdrive (); if (tmp[1] == ':') { tdrive = tolower (*tmp) - 'a' + 1; _chdrive (tdrive); } _chdir (tmp); /* * save stdout and stdin */ savo = _dup (fileno (stdout)); savi = _dup (fileno (stdin)); /* * connect stdout to stderr */ _dup2 (fileno (stderr), fileno (stdout)); /* * connect stdin to nul */ if (!(fnul = fopen ("nul", "rb"))) { fprintf (stderr, "Cannot open nul device to read.\n"); _chdrive (cdrive); _chdir (currdir); relmem (arg); free(tmp); return (100); } _dup2 (fileno (fnul), fileno (stdin)); /* * pkname is the filename of PK font */ sprintf (pkname, "%s.%spk", name, dpi); if (app == 0) { /* * METAFONT command line */ if (mag[0] == 0) { tpkerr ("Cannot determine MAG."); _chdrive (cdrive); _chdir (currdir); relmem (arg); free(tmp); return (100); } sprintf (cmd, "--progname=mf --base=mf \\mode:=%s; \\mag:=%s; nonstopmode; input %s;", mode, mag, name); strcpy (execfile, "mf-nowin.exe"); fprintf (stderr, "%s %s\n", execfile, cmd); strcpy(fullbin, texbindir); strcat(fullbin, execfile); (void) _spawnlp (_P_WAIT, fullbin, execfile, cmd, NULL); sprintf (cmd, "%s.%sgf", name, dpi); /* * check the consistency */ if (_access (cmd, 0) != 0) { tpkerr ("Failed to make gf font by METAFONT."); _chdrive (cdrive); _chdir (currdir); relmem (arg); free(tmp); return (100); } /* * Change gf into pk */ strcpy (execfile, "gftopk.exe"); fprintf (stderr, "%s %s %s\n", execfile, cmd, pkname); strcpy(fullbin, texbindir); strcat(fullbin, execfile); (void) _spawnlp (_P_WAIT, fullbin, execfile, cmd, pkname, NULL); if (_access (pkname, 0) != 0) { tpkerr ("Failed to make pk from gf."); _chdrive (cdrive); _chdir (currdir); relmem (arg); free(tmp); return (100); } /* * erase gf file */ remove (cmd); /* * erase log file */ sprintf (cmd, "%s.log", name); remove (cmd); /* * erase tfm file */ sprintf (cmd, "%s.tfm", name); remove (cmd); goto finale; } /* * app = 1 : ps2pk --> gsftopk --> ttf2pk --> hbf2gf */ p = kpse_find_file ("pspksupp.map", kpse_fontmap_format, 0); if(p) { fr = fopen (p, "r"); /* Read pspksupp.map */ free (p); if (!fr) { tpkerr ("Cannot open pspksupp.map to read."); ps2pkok = 0; goto do_ps2pk; } while (fgets (rbuff, SBUF, fr)) { if (rbuff[0] == '%' || rbuff[0] == '#' || rbuff[0] == '\n') continue; texname[0] = pfbname[0] = slant[0] = extend[0] = encname[0] = '\0'; i = sscanf (rbuff, "%s %s %s %s %s", texname, pfbname, slant, extend, encname); if (i == 2 && !strncmp (texname, "AspectRatio", 11)) { if (!sscanf (pfbname, "%lf", &AspectRatio)) { tpkerr ("File format of pspksupp.map is wrong."); fclose (fr); ps2pkok = 0; goto do_ps2pk; } UseAspectRatio = 1; continue; } else if (i > 0 && !stricmp (texname, name)) { p = kpse_var_value ("T1FONTS"); if (!p) { tpkerr ("T1FONTS is not defined."); ps2pkok = 0; break; } free (p); p = kpse_find_file (pfbname, kpse_type1_format, 0); if (!p) { fprintf (stderr, "%s is not found.\n", pfbname); ps2pkok = 0; break; } free (p); ps2pkok = 1; if(bdpi[0] == 0) i--; break; } } fclose (fr); goto do_ps2pk; } else { char *q; char a[SBUF]; char b[SBUF]; char psname[SBUF]; char pscommand[SBUF]; double slantval, extendval; texname[0] = pfbname[0] = encname[0] = '\0'; a[0] = b[0] = psname[0] = pscommand[0] = '\0'; FileName = 0; strcpy(slant, "0"); strcpy(extend, "1"); ps2pkok = 0; p = kpse_find_file ("ps2pk.map", kpse_fontmap_format, 0); if(!p) { tpkerr("Necessary map file for ps2pk is not found."); goto do_ps2pk; } fr = fopen(p,"rb"); free(p); if (!fr) { tpkerr ("Cannot open ps2pk.map to read."); goto do_ps2pk; } while ((ret=ffgets (rbuff, LBUF, fr)) != FFILE_END) { if(ret == BBUFF_FUL) { fprintf(stderr, "A line in ps2pk.map seems to be too long.\n"); fprintf(stderr, "I try to continue. But something may be wrong.\n"); } p = rbuff; skipchar(&p); if((*p == '%') || (*p == '#') || (*p == '\n')) continue; q = texname; while(!isskip(*p) && (*p != '\n')) *q++ = *p++; *q = '\0'; if(stricmp(texname, name)) continue; skipchar(&p); if((*p == '%') || (*p == '#') || (*p == '\n')) { fprintf(stderr, "Incorrect line in \"ps2pk.map\".\n"); break; } if(FileName) q = a; else q = psname; while(!isskip(*p) && (*p != '\n')) *q++ = *p++; *q = '\0'; skipchar(&p); /* skip flag */ if(!FileName) { while(isdigit(*p)) p++; skipchar(&p); } if((*p == '%') || (*p == '#') || (*p == '\n')) { tpkerr("I cannot use ps2pk due to lack of data."); break; } if(*p == '\"') { q = pscommand; *q++ = *p++; while(*p != '\"') *q++ = *p++; *q++ = *p++; *q = '\0'; skipchar(&p); if((*p == '%') || (*p == '#') || (*p == '\n')) break; } if(FileName && a[0] == '\0') q = a; else if(FileName && b[0] == '\0') q = b; else { tpkerr("Incorrect line in ps2pk.map."); break; } while(!isskip(*p) && (*p != '\n')) *q++ = *p++; *q = '\0'; skipchar(&p); if((*p == '%') || (*p == '#') || (*p == '\n')) break; if(*p == '\"') { q = pscommand; *q++ = *p++; while(*p != '\"') *q++ = *p++; *q++ = *p++; *q = '\0'; skipchar(&p); if((*p == '%') || (*p == '#') || (*p == '\n')) break; } if (FileName && a[0] == '\0') q = a; else if (FileName && b[0] == '\0') q = b; else { fprintf(stderr, "Incorrect line in \"ps2pk.map\".\n"); break; } while(!isskip(*p) && (*p != '\n')) *q++ = *p++; *q = '\0'; skipchar(&p); if((*p == '%') || (*p == '#') || (*p == '\n')) break; if(*p == '\"') { q = pscommand; *q++ = *p++; while(*p != '\"') *q++ = *p++; *q++ = *p++; *q = '\0'; skipchar(&p); if((*p == '%') || (*p == '#') || (*p == '\n')) break; } skipchar(&p); if((*p == '%') || (*p == '#') || (*p == '\n')) break; else { fprintf(stderr, "Incorrect line in \"ps2pk.map\".\n"); break; } } fclose(fr); if(pscommand[0]) { p = strstr(pscommand, "SlantFont"); if(p) { p--; while(*p == ' ' || *p == '\t') p--; while(*p != ' ' && *p != '\t' && *p != '\"') p--; p++; sscanf(p, "%lf SlantFont", &slantval); sprintf(slant, "%lf", slantval); p = slant + strlen(slant) - 1; while(*p == '0') { *p = '\0'; p--; } } p = strstr(pscommand, "ExtendFont"); if(p) { p--; while(*p == ' ' || *p == '\t') p--; while(*p != ' ' && *p != '\t' && *p != '\"') p--; p++; sscanf(p, "%lf ExtendFont", &extendval); sprintf(extend, "%lf", extendval); p = extend + strlen(extend) - 1; while(*p == '0') { *p = '\0'; p--; } } } if(a[0]) { p = strrchr(a, '.'); if(p && !stricmp(p, ".enc")) { *p = '\0'; strcpy(encname, a); } else if(p && !stricmp(p, ".pfb")) { *p = '\0'; strcpy(pfbname, a); } } if(b[0]) { p = strrchr(b, '.'); if(p && !stricmp(p, ".enc")) { *p = '\0'; strcpy(encname, b); } else if(p && !stricmp(p, ".pfb")) { *p = '\0'; strcpy(pfbname, b); } } if(pfbname[0] == '\0') goto do_ps2pk; p = kpse_find_file (pfbname, kpse_type1_format, 0); if(!p) goto do_ps2pk; free(p); ps2pkok = 1; if(encname[0] && bdpi[0]) { i = 5; } else if(!encname[0] && !bdpi[0]) { i = 3; } else { i = 4; } } do_ps2pk: if (ps2pkok) { if (UseAspectRatio) { sscanf (dpi, "%lf", &Xdpi); Ydpi = Xdpi * AspectRatio; sprintf (ydpi, "%d", (int) Ydpi); } else strcpy (ydpi, dpi); strcpy(tfname, name); strcat(tfname, ".tfm"); get_designsize(tfname, designsize); if (i == 3) { sprintf (cmd, "-X%s -Y%s -S%s -E%s -P%s %s %s", dpi, ydpi, slant, extend, designsize, pfbname, pkname); } else if (i == 4 && bdpi[0]) { sprintf (cmd, "-X%s -Y%s -R%s -S%s -E%s -P%s %s %s", dpi, ydpi, bdpi, slant, extend, designsize, pfbname, pkname); } else if (i == 4 && encname[0]) { sprintf (cmd, "-e%s -X%s -Y%s -S%s -E%s -P%s %s %s", encname, dpi, ydpi, slant, extend, designsize, pfbname, pkname); } else if (i == 5) { sprintf (cmd, "-e%s -X%s -Y%s -R%s -S%s -E%s -P%s %s %s", encname, dpi, ydpi, bdpi, slant, extend, designsize, pfbname, pkname); } else { tpkerr ("File format of pspksupp.map is wrong."); goto do_gsftopk; } strcpy (execfile, "ps2pk.exe"); fprintf (stderr, "%s %s\n", execfile, cmd); strcpy(fullbin, texbindir); strcat(fullbin, execfile); (void) _spawnlp (_P_WAIT, fullbin, execfile, cmd, NULL); if (_access (pkname, 0) != 0) { tpkerr ("ps2pk failed to make pk font."); goto do_gsftopk; } goto finale; } /* * ps2pk is impossible to use */ do_gsftopk: tpkerr ("ps2pk cannot be used."); tpkerr ("I try gsftopk."); app = 2; strcpy (execfile, "gsftopk.exe"); fprintf (stderr, "%s %s %s\n", execfile, name, dpi); strcpy(fullbin, texbindir); strcat(fullbin, execfile); (void) _spawnlp (_P_WAIT, fullbin, execfile, name, dpi, NULL); if (_access (pkname, 0) != 0) { tpkerr ("gsftopk cannot be used."); tpkerr ("Next I try ttf2pk."); app = 3; strcpy (execfile, "ttf2pk.exe"); fprintf (stderr, "%s -q %s %s\n", execfile, name, dpi); strcpy(fullbin, texbindir); strcat(fullbin, execfile); (void) _spawnlp (_P_WAIT, fullbin, execfile, "-q", name, dpi, NULL); if (_access (pkname, 0) != 0) { tpkerr ("ttf2pk failed."); tpkerr ("Finally I try hbf2gf."); app = 4; strcpy (execfile, "hbf2gf.exe"); fprintf (stderr, "%s -q -p %s %s\n", execfile, name, dpi); strcpy(fullbin, texbindir); strcat(fullbin, execfile); (void) _spawnlp (_P_WAIT, fullbin, execfile, "-q -p", name, dpi, NULL); sprintf (cmd, "%s.%sgf", name, dpi); if (_access (cmd, 0) != 0) { tpkerr ("All trials failed."); _chdrive (cdrive); _chdir (currdir); relmem (arg); free(tmp); return (100); } strcpy (execfile, "gftopk.exe"); fprintf (stderr, "%s %s %s\n", execfile, cmd, pkname); strcpy(fullbin, texbindir); strcat(fullbin, execfile); (void) _spawnlp (_P_WAIT, fullbin, execfile, cmd, pkname, NULL); if (_access (pkname, 0) != 0) { tpkerr ("All trials failed."); _chdrive (cdrive); _chdir (currdir); relmem (arg); free(tmp); return (100); } remove (cmd); } } finale: /* * return to original stdout and stdin */ _dup2 (savo, fileno (stdout)); close (savo); _dup2 (savi, fileno (stdin)); close (savi); /* * close nul device */ fclose (fnul); /* * copy the pk file */ if (!(fr = fopen (pkname, "rb"))) { fprintf (stderr, "Cannot open %s to read.\n", pkname); _chdrive (cdrive); _chdir (currdir); relmem (arg); free(tmp); return (100); } if (!(fw = fopen (buff, "wb"))) { fprintf (stderr, "Cannot open %s to write.\n", buff); _chdrive (cdrive); _chdir (currdir); relmem (arg); free(tmp); return (100); } while ((i = (int)fread (rbuff, 1, LBUF, fr))) fwrite (rbuff, 1, i, fw); fclose (fr); fclose (fw); remove (pkname); relmem (arg); /* * update ls-R if it exists */ mktexupd (buff); /* * tell kpathsea */ printf ("%s\n", buff); _chdrive (cdrive); _chdir (currdir); free(tmp); return (0); }
int main P2C(int,argc,string*,argv) #line 104 "./ctie.w" { #line 38 "./ctie-k.ch" /*5:*/ #line 84 "./ctie-k.ch" kpse_set_program_name(argv[0],"ctie"); /*:5*/ #line 38 "./ctie-k.ch" ; /*19:*/ #line 300 "./ctie.w" actual_input= 0; out_mode= normal; /*:19*/ #line 39 "./ctie-k.ch" ; #line 106 "./ctie.w" /*63:*/ #line 1135 "./ctie.w" { if(argc> max_file_index+5-1)usage_error(); no_ch= -1; while(--argc> 0){ argv++; if(strcmp("-help",*argv)==0||strcmp("--help",*argv)==0) /*66:*/ #line 1202 "./ctie.w" usage_help(); /*:66*/ #line 1142 "./ctie.w" ; if(strcmp("-version",*argv)==0||strcmp("--version",*argv)==0) /*67:*/ #line 1208 "./ctie.w" { print_version_and_exit("CTIE",version_number); } /*:67*/ #line 1144 "./ctie.w" ; if(**argv=='-')/*64:*/ #line 1158 "./ctie.w" if(prod_chf!=unknown)usage_error(); else switch(*(*argv+1)){ case'c':case'C':prod_chf= chf;break; case'm':case'M':prod_chf= master;break; default:usage_error(); } /*:64*/ #line 1145 "./ctie.w" else/*65:*/ #line 1172 "./ctie.w" { if(no_ch==(-1)){ out_name= *argv; }else{ register input_description*inp_desc; inp_desc= (input_description*)malloc(sizeof(input_description)); if(inp_desc==NULL) fatal_error(-1,"! No memory for input descriptor",""); inp_desc->mode= search; inp_desc->line= 0; inp_desc->type_of_file= chf; inp_desc->limit= inp_desc->buffer; inp_desc->buffer[0]= ' '; inp_desc->loc= inp_desc->buffer+1; inp_desc->buffer_end= inp_desc->buffer+buf_size-2; inp_desc->file_name= *argv; inp_desc->current_include= NULL; input_organisation[no_ch]= inp_desc; } no_ch++; } /*:65*/ #line 1146 "./ctie.w" } if(no_ch<=0||prod_chf==unknown)usage_error(); } /*:63*/ #line 106 "./ctie.w" /*62:*/ #line 1118 "./ctie.w" #line 382 "./ctie-k.ch" { extern KPSEDLL string kpathsea_version_string; printf("%s (%s)\n",banner,kpathsea_version_string); } #line 1120 "./ctie.w" printf("%s\n",copyright); /*:62*/ #line 107 "./ctie.w" ; /*42:*/ #line 277 "./ctie-k.ch" { string fullname; fullname= kpse_find_cweb(input_organisation[0]->file_name); if(fullname) input_organisation[0]->the_file= fopen(fullname,"r"); if(fullname==NULL||input_organisation[0]->the_file==NULL){ if(fullname){ pfatal_error("! Cannot open master file ", input_organisation[0]->file_name); }else{ fatal_error(-1,"! Cannot find master file ", input_organisation[0]->file_name); } } else free(fullname); #line 759 "./ctie.w" printf("(%s)\n",input_organisation[0]->file_name); input_organisation[0]->type_of_file= master; get_line(0,true); } /*:42*/ #line 108 "./ctie.w" /*43:*/ #line 313 "./ctie-k.ch" { file_index i; string fullname; i= 1; while(i<no_ch){ fullname= kpse_find_cweb(input_organisation[i]->file_name); if(fullname) input_organisation[i]->the_file= fopen(fullname,"r"); if(fullname==NULL||input_organisation[i]->the_file==NULL){ if(fullname){ pfatal_error("! Cannot open change file ", input_organisation[i]->file_name); }else{ fatal_error(-1,"! Cannot find change file ", input_organisation[i]->file_name); } } else free(fullname); #line 780 "./ctie.w" printf("(%s)\n",input_organisation[i]->file_name); init_change_file(i); i++; } } /*:43*/ #line 109 "./ctie.w" /*40:*/ #line 729 "./ctie.w" { out_file= fopen(out_name,"w"); if(out_file==NULL){ pfatal_error("! Cannot open/create output file",""); } } /*:40*/ #line 110 "./ctie.w" /*59:*/ #line 1074 "./ctie.w" actual_input= 0; input_has_ended= false; while(input_has_ended==false||actual_input!=0) /*51:*/ #line 917 "./ctie.w" { file_index test_file; /*52:*/ #line 934 "./ctie.w" { register input_description*inp_desc; while(actual_input> 0&&e_of_ch_module(actual_input)){ inp_desc= input_organisation[actual_input]; if(inp_desc->type_of_file==master){ fatal_error(-1,"! This can't happen: change file is master file",""); } inp_desc->mode= search; init_change_file(actual_input); while((input_organisation[actual_input]->mode!=reading &&actual_input> 0)) actual_input--; } } /*:52*/ #line 921 "./ctie.w" if(input_has_ended&&actual_input==0)break; /*53:*/ #line 960 "./ctie.w" test_input= none; test_file= actual_input; while(test_input==none&&test_file<no_ch-1){ test_file++; switch(input_organisation[test_file]->mode){ case search: if(lines_dont_match(actual_input,test_file)==false){ input_organisation[test_file]->mode= test; test_input= test_file; } break; case test: if(lines_dont_match(actual_input,test_file)){ input_organisation[test_file]->dont_match++; } test_input= test_file; break; case reading: break; case ignore: break; } } /*:53*/ #line 923 "./ctie.w" /*54:*/ #line 993 "./ctie.w" if(prod_chf==chf){ while(1){ /*55:*/ #line 1007 "./ctie.w" if(out_mode==normal){ if(test_input!=none){ fprintf(out_file,"@x\n"); out_mode= pre; }else break; } /*:55*/ #line 996 "./ctie.w" /*56:*/ #line 1021 "./ctie.w" if(out_mode==pre){ if(test_input==none){ fprintf(out_file,"@y\n"); out_mode= post; }else{ if(input_organisation[actual_input]->type_of_file==master) put_line(actual_input); break; } } /*:56*/ #line 997 "./ctie.w" /*57:*/ #line 1040 "./ctie.w" if(out_mode==post){ if(input_organisation[actual_input]->type_of_file==chf){ if(test_input==none)put_line(actual_input); break; }else{ fprintf(out_file,"@z\n\n"); out_mode= normal; } } /*:57*/ #line 998 "./ctie.w" } }else if(test_input==none)put_line(actual_input); /*:54*/ #line 924 "./ctie.w" /*58:*/ #line 1055 "./ctie.w" get_line(actual_input,true); if(test_input!=none){ get_line(test_input,true); if(e_of_ch_preamble(test_input)==true){ get_line(test_input,true); input_organisation[test_input]->mode= reading; actual_input= test_input; test_input= none; } } /*:58*/ #line 925 "./ctie.w" } /*:51*/ #line 1078 "./ctie.w" if(out_mode==post) fprintf(out_file,"@z\n"); /*:59*/ #line 111 "./ctie.w" /*60:*/ #line 1087 "./ctie.w" { file_index i; for(i= 1;i<no_ch;i++){ if(input_organisation[i]->mode!=ignore){ input_organisation[i]->loc= input_organisation[i]->buffer; err_print(i,"! Change file entry did not match"); } } } /*:60*/ #line 112 "./ctie.w" exit(wrap_up()); }