summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/lua/luatex.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/lua/luatex.c')
-rw-r--r--Build/source/texk/web2c/luatexdir/lua/luatex.c364
1 files changed, 0 insertions, 364 deletions
diff --git a/Build/source/texk/web2c/luatexdir/lua/luatex.c b/Build/source/texk/web2c/luatexdir/lua/luatex.c
deleted file mode 100644
index 88903fe338b..00000000000
--- a/Build/source/texk/web2c/luatexdir/lua/luatex.c
+++ /dev/null
@@ -1,364 +0,0 @@
-/* luatex.c
-
- Copyright 2006-2008 Taco Hoekwater <taco@luatex.org>
-
- This file is part of LuaTeX.
-
- LuaTeX is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- LuaTeX is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- License for more details.
-
- You should have received a copy of the GNU General Public License along
- with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */
-
-#include "luatex-api.h"
-#include <ptexlib.h>
-#include <zlib.h>
-
-static const char _svn_version[] =
- "$Id: luatex.c 2599 2009-06-25 10:35:26Z taco $ $URL: http://foundry.supelec.fr/svn/luatex/tags/beta-0.40.6/source/texk/web2c/luatexdir/lua/luatex.c $";
-
-/* do this aleph stuff here, for now */
-
-void b_test_in(void)
-{
- if (program_name_set) {
- string fname = kpse_find_file((char *) (nameoffile + 1),
- kpse_program_binary_format, true);
- if (fname) {
- libcfree(nameoffile);
- nameoffile = xmalloc(2 + strlen(fname));
- namelength = strlen(fname);
- strcpy((char *) nameoffile + 1, fname);
- } else {
- libcfree(nameoffile);
- nameoffile = xmalloc(2);
- namelength = 0;
- nameoffile[0] = 0;
- nameoffile[1] = 0;
- }
- }
-}
-
-
-int **ocp_tables;
-static int ocp_entries = 0;
-
-void
-allocate_ocp_table (int ocp_number, int ocp_size)
-{
- int i;
- if (ocp_entries == 0) {
- ocp_tables = (int **) xmalloc(256 * sizeof(int **));
- ocp_entries = 256;
- } else if ((ocp_number == 256) && (ocp_entries == 256)) {
- ocp_tables = xrealloc(ocp_tables, 65536);
- ocp_entries = 65536;
- }
- ocp_tables[ocp_number] = (int *) xmalloc((1 + ocp_size) * sizeof(int));
- ocp_tables[ocp_number][0] = ocp_size;
- for (i = 1; i <= ocp_size; i++) {
- ocp_tables[ocp_number][i] = 0;
- }
-}
-
-void
-dump_ocp_table (int ocp_number)
-{
- dump_things(ocp_tables[ocp_number][0], ocp_tables[ocp_number][0] + 1);
-}
-
-void
-undump_ocp_table (int ocp_number)
-{
- int sizeword;
- if (ocp_entries == 0) {
- ocp_tables = (int **) xmalloc(256 * sizeof(int **));
- ocp_entries = 256;
- } else if ((ocp_number == 256) && (ocp_entries == 256)) {
- ocp_tables = xrealloc(ocp_tables, 65536);
- ocp_entries = 65536;
- }
- undump_things(sizeword, 1);
- ocp_tables[ocp_number] = (int *) xmalloc((1 + sizeword) * sizeof(int));
- ocp_tables[ocp_number][0] = sizeword;
- undump_things(ocp_tables[ocp_number][1], sizeword);
-}
-
-
-void
-run_external_ocp (string external_ocp_name)
-{
- char *in_file_name;
- char *out_file_name;
- FILE *in_file;
- FILE *out_file;
- int in_file_fd;
- int out_file_fd;
- char command_line[400];
- int i;
- unsigned c;
- int c_in;
-#ifdef WIN32
- char *tempenv;
-
-# define null_string(s) ((s == NULL) || (*s == '\0'))
-
- tempenv = getenv("TMPDIR");
- if (null_string(tempenv))
- tempenv = getenv("TEMP");
- if (null_string(tempenv))
- tempenv = getenv("TMP");
- if (null_string(tempenv))
- tempenv = "c:/tmp"; /* "/tmp" is not good if we are on a CD-ROM */
- in_file_name = concat(tempenv, "/__aleph__in__XXXXXX");
- mktemp(in_file_name);
- in_file = fopen(in_file_name, FOPEN_WBIN_MODE);
-#else
- in_file_name = strdup("/tmp/__aleph__in__XXXXXX");
- in_file_fd = mkstemp(in_file_name);
- in_file = fdopen(in_file_fd, FOPEN_WBIN_MODE);
-#endif /* WIN32 */
-
-
- for (i = 1; i <= otp_input_end; i++) {
- c = otp_input_buf[i];
- if (c > 0xffff) {
- fprintf(stderr, "Aleph does not currently support 31-bit chars\n");
- exit(1);
- }
- if (c > 0x4000000) {
- fputc(0xfc | ((c >> 30) & 0x1), in_file);
- fputc(0x80 | ((c >> 24) & 0x3f), in_file);
- fputc(0x80 | ((c >> 18) & 0x3f), in_file);
- fputc(0x80 | ((c >> 12) & 0x3f), in_file);
- fputc(0x80 | ((c >> 6) & 0x3f), in_file);
- fputc(0x80 | (c & 0x3f), in_file);
- } else if (c > 0x200000) {
- fputc(0xf8 | ((c >> 24) & 0x3), in_file);
- fputc(0x80 | ((c >> 18) & 0x3f), in_file);
- fputc(0x80 | ((c >> 12) & 0x3f), in_file);
- fputc(0x80 | ((c >> 6) & 0x3f), in_file);
- fputc(0x80 | (c & 0x3f), in_file);
- } else if (c > 0x10000) {
- fputc(0xf0 | ((c >> 18) & 0x7), in_file);
- fputc(0x80 | ((c >> 12) & 0x3f), in_file);
- fputc(0x80 | ((c >> 6) & 0x3f), in_file);
- fputc(0x80 | (c & 0x3f), in_file);
- } else if (c > 0x800) {
- fputc(0xe0 | ((c >> 12) & 0xf), in_file);
- fputc(0x80 | ((c >> 6) & 0x3f), in_file);
- fputc(0x80 | (c & 0x3f), in_file);
- } else if (c > 0x80) {
- fputc(0xc0 | ((c >> 6) & 0x1f), in_file);
- fputc(0x80 | (c & 0x3f), in_file);
- } else {
- fputc(c & 0x7f, in_file);
- }
- }
- fclose(in_file);
-
-#define advance_cin if ((c_in = fgetc(out_file)) == -1) { \
- fprintf(stderr, "File contains bad char\n"); \
- goto end_of_while; \
- }
-
-#ifdef WIN32
- out_file_name = concat(tempenv, "/__aleph__out__XXXXXX");
- mktemp(out_file_name);
- out_file = fopen(out_file_name, FOPEN_RBIN_MODE);
-#else
- out_file_name = strdup("/tmp/__aleph__out__XXXXXX");
- out_file_fd = mkstemp(out_file_name);
- out_file = fdopen(out_file_fd, FOPEN_RBIN_MODE);
-#endif
-
- sprintf(command_line, "%s <%s >%s\n",
- external_ocp_name + 1, in_file_name, out_file_name);
- system(command_line);
- otp_output_end = 0;
- otp_output_buf[otp_output_end] = 0;
- while ((c_in = fgetc(out_file)) != -1) {
- if (c_in >= 0xfc) {
- c = (c_in & 0x1) << 30;
- advance_cin;
- c |= (c_in & 0x3f) << 24;
- advance_cin;
- c |= (c_in & 0x3f) << 18;
- advance_cin;
- c |= (c_in & 0x3f) << 12;
- advance_cin;
- c |= (c_in & 0x3f) << 6;
- advance_cin;
- c |= c_in & 0x3f;
- } else if (c_in >= 0xf8) {
- c = (c_in & 0x3) << 24;
- advance_cin;
- c |= (c_in & 0x3f) << 18;
- advance_cin;
- c |= (c_in & 0x3f) << 12;
- advance_cin;
- c |= (c_in & 0x3f) << 6;
- advance_cin;
- c |= c_in & 0x3f;
- } else if (c_in >= 0xf0) {
- c = (c_in & 0x7) << 18;
- advance_cin;
- c |= (c_in & 0x3f) << 12;
- advance_cin;
- c |= (c_in & 0x3f) << 6;
- advance_cin;
- c |= c_in & 0x3f;
- } else if (c_in >= 0xe0) {
- c = (c_in & 0xf) << 12;
- advance_cin;
- c |= (c_in & 0x3f) << 6;
- advance_cin;
- c |= c_in & 0x3f;
- } else if (c_in >= 0x80) {
- c = (c_in & 0x1f) << 6;
- advance_cin;
- c |= c_in & 0x3f;
- } else {
- c = c_in & 0x7f;
- }
- otp_output_buf[++otp_output_end] = c;
- }
- fclose(out_file);
-
- end_of_while:
- remove(in_file_name);
- remove(out_file_name);
-}
-
-/* Read and write dump files through zlib */
-
-/* Earlier versions recast *f from FILE * to gzFile, but there is
- * no guarantee that these have the same size, so a static variable
- * is needed.
- */
-
-static gzFile gz_fmtfile = NULL;
-
-void do_zdump(char *p, int item_size, int nitems, FILE * out_file)
-{
- int err;
- (void) out_file;
- if (nitems == 0)
- return;
- if (gzwrite(gz_fmtfile, (void *) p, item_size * nitems) !=
- item_size * nitems) {
- fprintf(stderr, "! Could not write %d %d-byte item(s): %s.\n", nitems,
- item_size, gzerror(gz_fmtfile, &err));
- uexit(1);
- }
-}
-
-void do_zundump(char *p, int item_size, int nitems, FILE * in_file)
-{
- int err;
- (void) in_file;
- if (nitems == 0)
- return;
- if (gzread(gz_fmtfile, (void *) p, item_size * nitems) <= 0) {
- fprintf(stderr, "Could not undump %d %d-byte item(s): %s.\n",
- nitems, item_size, gzerror(gz_fmtfile, &err));
- uexit(1);
- }
-}
-
-#define COMPRESSION "R3"
-
-boolean zopen_w_input(FILE ** f, int format, const_string fopen_mode)
-{
- int callbackid;
- int res;
- char *fnam;
- callbackid = callback_defined(find_format_file_callback);
- if (callbackid > 0) {
- res = run_callback(callbackid, "S->S", (nameoffile + 1), &fnam);
- if (res && fnam && strlen(fnam) > 0) {
- xfree(nameoffile);
- nameoffile = xmalloc(strlen(fnam) + 2);
- memcpy((nameoffile + 1), fnam, strlen(fnam));
- *(nameoffile + strlen(fnam) + 1) = 0;
- *f = xfopen(fnam, fopen_mode);
- if (*f == NULL) {
- return 0;
- }
- } else {
- return 0;
- }
- } else {
- res = open_input(f, format, fopen_mode);
- }
- if (res) {
- gz_fmtfile = gzdopen(fileno(*f), "rb" COMPRESSION);
- }
- return res;
-}
-
-boolean zopen_w_output(FILE ** f, const_string fopen_mode)
-{
- int res = 1;
- if (luainit) {
- *f = fopen((const_string) (nameoffile + 1), fopen_mode);
- if (*f == NULL) {
- return 0;
- }
- } else {
- res = open_output(f, fopen_mode);
- }
- if (res) {
- gz_fmtfile = gzdopen(fileno(*f), "wb" COMPRESSION);
- }
- return res;
-}
-
-void zwclose(FILE * f)
-{
- (void) f;
- gzclose(gz_fmtfile);
-}
-
-/* create the dvi or pdf file */
-
-int open_outfile(FILE ** f, const char *name, const char *mode)
-{
- FILE *res;
- res = fopen(name, mode);
- if (res != NULL) {
- *f = res;
- return 1;
- }
- return 0;
-}
-
-
-/* the caller sets tfm_buffer=NULL and tfm_size=0 */
-
-int readbinfile(FILE * f, unsigned char **tfm_buffer, integer * tfm_size)
-{
- void *buf;
- int size;
- if (fseek(f, 0, SEEK_END) == 0) {
- size = ftell(f);
- if (size > 0) {
- buf = xmalloc(size);
- if (fseek(f, 0, SEEK_SET) == 0) {
- if (fread((void *) buf, size, 1, f) == 1) {
- *tfm_buffer = (unsigned char *) buf;
- *tfm_size = (integer) size;
- return 1;
- }
- }
- }
- } /* seek failed, or zero-sized file */
- return 0;
-}