summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/fonts/libertine/g2ntotex.c
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/fonts/libertine/g2ntotex.c')
-rw-r--r--Master/texmf-dist/doc/fonts/libertine/g2ntotex.c53
1 files changed, 53 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/fonts/libertine/g2ntotex.c b/Master/texmf-dist/doc/fonts/libertine/g2ntotex.c
new file mode 100644
index 00000000000..90590fd0c70
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/libertine/g2ntotex.c
@@ -0,0 +1,53 @@
+/* g2ntotex.c
+ * Usage: g2ntotex fontname (converts fontname.g2n to fontname.tex)
+ *
+ * Copyright 2012 Bob Tennent
+ * School of Computing, Queen's University
+ * This program is free software, licensed under the GNU GPL, >=2.0.
+ * This software comes with absolutely NO WARRANTY.
+ * */
+# include <stdlib.h>
+# include <stdio.h>
+# include <string.h>
+# define FILE_LEN 36
+# define LINE_LEN 72
+
+FILE *g2n_file, *tex_file;
+char g2n_filename[FILE_LEN+5];
+char tex_filename[FILE_LEN+5];
+
+void error (char msg[]) /* abort with stderr message msg */
+{ fprintf (stderr, "Error: %s\n", msg);
+ exit (EXIT_FAILURE);
+}
+
+int main (int argc, char *argv[]) {
+ int ch;
+ int gid;
+ char codepoint[5];
+ char glyphname [LINE_LEN+1];
+ g2n_filename[0] = '\0';
+ strncat (g2n_filename, argv[1], FILE_LEN);
+ strcat (g2n_filename, ".g2n");
+ g2n_file = fopen (g2n_filename, "r+");
+ if (g2n_file == NULL) error("Can't open g2n file.");
+ tex_filename[0] = '\0';
+ strncat (tex_filename, argv[1], FILE_LEN);
+ strcat (tex_filename, ".tex");
+ tex_file = fopen (tex_filename, "w+");
+ if (tex_file == NULL) error("Can't open tex file.");
+ /* skip first line: */
+ ch = getc (g2n_file); while (ch != '\n') { ch = getc (g2n_file);}
+ while (fscanf (g2n_file,
+ "GLYPHID%i PSNAME %s UNICODE %s\n",
+ &gid, &glyphname, &codepoint)
+ == 3 )
+ { int glyphindex;
+ sscanf ( codepoint, "%x", &glyphindex); /* convert hex codepoint to integer index */
+ if (glyphname[0] != 'u' || glyphname[1] != 'n' || glyphname[2] != 'i' ) {
+ fprintf (tex_file, "\\DeclareTextGlyphY{%s}{%s}{%i}\n", argv[1], glyphname, glyphindex);
+ }
+ fprintf (tex_file, "\\DeclareTextGlyphY{%s}{uni%s}{%i}\n", argv[1], codepoint, glyphindex);
+ }
+ return 0;
+}