diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-17 21:41:51 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-17 21:41:51 +0000 |
commit | 487ca4806cc046076293cf6cc5fbba0db282bac7 (patch) | |
tree | 847b412ab5158dd7bdd7ed7e5a4cc3fbca94be32 /Build/source/texk/contrib/mkocp.c | |
parent | a3d3111bfe26b8e5f5bc6049dfb2a4ca2edc7881 (diff) |
texk 1
git-svn-id: svn://tug.org/texlive/trunk@1485 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/contrib/mkocp.c')
-rw-r--r-- | Build/source/texk/contrib/mkocp.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Build/source/texk/contrib/mkocp.c b/Build/source/texk/contrib/mkocp.c new file mode 100644 index 00000000000..f009c2b76de --- /dev/null +++ b/Build/source/texk/contrib/mkocp.c @@ -0,0 +1,46 @@ +#include <kpathsea/kpathsea.h> +#include "stackenv.h" + +char *progname = NULL; + +void +usage() +{ + fprintf(stderr, "usage: %s ocp_filename\n", progname); + exit(1); +} + +int +main (int argc, char *argv[]) +{ + char cmd[4096]; + int newfd[3], ret; + FILE *f = fopen("nul", "r"); + char *basename; + + progname = xbasename(argv[0]); + + if (argc != 2) { + usage(); + } + + SetConsoleCtrlHandler((PHANDLER_ROUTINE)mt_exit, TRUE); + + basename = xbasename(argv[1]); + if (strlen(basename) > strlen(".ocp") + && _stricmp(basename + strlen(basename) - strlen(".ocp"), ".ocp") == 0) { + basename[strlen(basename) - strlen(".ocp")] = '\0'; + } + newfd[0] = fileno(f); + newfd[1] = fileno(stderr); + newfd[2] = fileno(stderr); + push_fd(newfd); + sprintf(cmd, "otp2ocp %s", basename); + ret = system(cmd); + pop_fd(); + fclose(f); + if (ret == 0) { + printf("%s.ocp\n", basename); + } + return ret; +} |