summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipsk/header.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/dvipsk/header.c')
-rw-r--r--Build/source/texk/dvipsk/header.c181
1 files changed, 0 insertions, 181 deletions
diff --git a/Build/source/texk/dvipsk/header.c b/Build/source/texk/dvipsk/header.c
deleted file mode 100644
index 31b03e3be18..00000000000
--- a/Build/source/texk/dvipsk/header.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * This routine handles the PostScript prologs that might
- * be included through:
- *
- * - Default
- * - Use of PostScript fonts
- * - Specific inclusion through specials, etc.
- * - Use of graphic specials that require them.
- *
- * Things are real simple. We build a linked list of headers to
- * include. Then, when the time comes, we simply copy those
- * headers down.
- */
-#include "dvips.h" /* The copyright notice in that file is included too! */
-struct header_list *header_head;
-/*
- * The external declarations:
- */
-#include "protos.h"
-
-static int add_name_general(const char *s, struct header_list **what,
- char *pre, char *post);
-
-int
-add_name(const char *s, struct header_list **what)
-{
- return (int) add_name_general (s, what, NULL, NULL);
-}
-
-/*
- * This more general routine adds a name to a list of unique
- * names.
- */
-static int
-add_name_general(const char *s, struct header_list **what, char *pre, char *post)
-{
- struct header_list *p, *q;
-
- for (p = *what; p != NULL; p = p->next)
- if (strcmp(p->name, s)==0)
- return 0;
- q = (struct header_list *)mymalloc((integer)(sizeof(struct header_list)));
- q->name = mymalloc(strlen(s) + 1);
- q->Hname = infont;
- q->next = NULL;
- q->precode = pre;
- q->postcode = post;
- strcpy(q->name, s);
- if (*what == NULL)
- *what = q;
- else {
- for (p = *what; p->next != NULL; p = p->next);
- p->next = q;
- }
- return 1;
-}
-/*
- * This function checks the virtual memory usage of a header file.
- * If we can find a VMusage comment, we use that; otherwise, we use
- * length of the file.
- */
-void
-checkhmem(const char *s, char *pre, char *post)
-{
- FILE *f;
-
- f = search(headerpath, s, READBIN);
- if (pre || post) {
- if (f==NULL)
- f = search(figpath, s, READBIN);
- }
- if (f==0) {
- char *msg = concat ("! Couldn't find header file: ", s);
-
- if (secure == 2) {
- msg = concat (msg,
- "\nAbsolute and ../relative paths are denied in -R2 mode.");
- }
- error(msg);
- } else {
- int len, i, j;
- long mem = -1;
- char buf[1024];
-
- len = fread(buf, sizeof(char), 1024, f);
- for (i=0; i<len-20; i++)
- if (buf[i]=='%' && strncmp(buf+i, "%%VMusage:", 10)==0) {
- if (sscanf(buf+i+10, "%d %ld", &j, &mem) != 2)
- mem = -1;
- break;
- }
- if (mem == -1) {
- mem = 0;
- while (len > 0) {
- mem += len;
- len = fread(buf, sizeof(char), 1024, f);
- }
- }
- if (mem < 0)
- mem = DNFONTCOST;
- (*close_file) (f);
-#ifdef DEBUG
- if (dd(D_HEADER))
- fprintf_str(stderr, "Adding header file \"%s\" %ld\n",
- s, mem);
-#endif
- fontmem -= mem;
- if (fontmem > 0) /* so we don't count it twice. */
- swmem -= mem;
- }
-}
-/*
- * This routine is responsible for adding a header file. We also
- * calculate the VM usage. If we can find a VMusage comment, we
- * use that; otherwise, we use the length of the file.
- */
-int
-add_header(const char *s)
-{
- return (int) add_header_general (s, NULL, NULL);
-}
-
-int
-add_header_general(const char *s, char *pre, char *post)
-{
- int r;
-
- r = add_name_general(s, &header_head, pre, post);
- if (r) {
- if (headersready == 1) {
- struct header_list *p = header_head;
-
- while (p) {
- checkhmem(p->name, p->precode, p->postcode);
- p = p->next;
- }
- headersready = 2;
- } else if (headersready == 2) {
- checkhmem(s, pre, post);
- }
- }
- return r;
-}
-/*
- * This routine runs down a list, returning each in order.
- */
-static struct header_list *CUR_head = NULL;
-char *
-get_name(struct header_list **what)
-{
- if (what && *what) {
- char *p = (*what)->name;
- infont = (*what)->Hname;
- CUR_head = *what;
- *what = (*what)->next;
- return p;
- } else
- return 0;
-}
-/*
- * This routine actually sends the headers.
- */
-void
-send_headers(void) {
- struct header_list *p = header_head;
- char *q;
-
- while (0 != (q=get_name(&p))) {
-#ifdef DEBUG
- if (dd(D_HEADER))
- fprintf_str(stderr, "Sending header file \"%s\"\n", q);
-#endif
-#ifdef HPS
- if (HPS_FLAG) {
- if (strcmp(q,"target.dct")==0) noprocset = 1;
- }
-#endif
- copyfile_general(q, CUR_head);
- }
- infont = NULL;
-}