summaryrefslogtreecommitdiff
path: root/Build/source/texk/contrib/mkocp.c
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-17 21:41:51 +0000
committerKarl Berry <karl@freefriends.org>2006-01-17 21:41:51 +0000
commit487ca4806cc046076293cf6cc5fbba0db282bac7 (patch)
tree847b412ab5158dd7bdd7ed7e5a4cc3fbca94be32 /Build/source/texk/contrib/mkocp.c
parenta3d3111bfe26b8e5f5bc6049dfb2a4ca2edc7881 (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.c46
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;
+}