diff options
Diffstat (limited to 'src/hyper/addfile.pamphlet')
-rw-r--r-- | src/hyper/addfile.pamphlet | 347 |
1 files changed, 0 insertions, 347 deletions
diff --git a/src/hyper/addfile.pamphlet b/src/hyper/addfile.pamphlet deleted file mode 100644 index 4a1e15ae..00000000 --- a/src/hyper/addfile.pamphlet +++ /dev/null @@ -1,347 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/addfile} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{addfile.h} -<<addfile.h>>= -<<license>> -#ifndef _ADDFILE_H_ -#define _ADDFILE_H_ 1 - -extern char *gDatabasePath; - -#endif -@ -\section{addfile.c} -<<addfile.c>>= -#define _ADDFILE_C -#include "useproto.h" -#include "debug.h" - -#include "hyper.h" -#include "addfile.h" - -#include <sys/stat.h> -#include <errno.h> - -#include "all_hyper_proto.H1" - - -char *gDatabasePath = NULL; - -static int -strpostfix(char *s, char *t) -{ - int slen = strlen(s), tlen = strlen(t); - - if (tlen > slen) - return 0; - while (tlen > 0) - if (s[--slen] != t[--tlen]) - return 0; - return 1; -} - -/* extend_ht : just checks the name and adds a .ht if needed */ - -void -extend_ht(char *name) -{ - - if (!strpostfix(name, ".ht") && !strpostfix(name, ".pht")) - strcat(name, ".ht"); - return; -} - -#define cwd(n) ((n[0] == '.' && n[1] == '/')?(1):(0)) - -/* - * This procedure is sent a filename, and from it tries to build the full - * filename, this it returns in the fullname variable. If the file is not - * found, then it returns a -1. The fname is the fullpath name for the file, - * including the .ht extension. The aname is the filename minus the added .ht - * extension, and the pathname. - */ - -static int -build_ht_filename(char *fname, char *aname, char *name) -{ - char cdir[256]; - char *c_dir; - char *HTPATH; - char *trace; - char *trace2; - int ht_file; - - if (cwd(name)) { - /* user wants to use the current working directory */ - c_dir = (char *) getcwd(cdir, 254); - strcpy(fname, c_dir); - - /* Now add the rest of the filename */ - strcat(fname, "/"); - strcat(fname, &name[2]); - - /** now copy the actual file name to addname **/ - for (trace = &name[strlen(name)]; trace != name && - (*trace != '/'); trace--); - if (trace == name) { - fprintf(stderr, "ht_open_file: Didn't expect a filename like %s\n", - name); - exit(-1); - } - trace++; - strcpy(aname, trace); - - /** add the .ht extension if needed **/ - extend_ht(aname); - extend_ht(fname); - - /* Now just try to access the file */ - return (access(fname, R_OK)); - } - else if (pathname(name)) { - /* filename already has the path specified */ - strcpy(fname, name); - - /** now copy the actual file name to addname **/ - for (trace = &name[strlen(name)]; trace != name && - (*trace != '/'); trace--); - if (trace == name) { - fprintf(stderr, "ht_open_file: Didn't expect a filename like %s\n", - name); - exit(-1); - } - trace++; - strcpy(aname, trace); - - /** add the .ht extension if needed **/ - extend_ht(aname); - extend_ht(fname); - - /* Now just try to access the file */ - return (access(fname, R_OK)); - } - else {/** If not I am going to have to append path names to it **/ - HTPATH = (char *) getenv("HTPATH"); - if (HTPATH == NULL) { - /** The user does not have a HTPATH, so I will use the the directory - $AXIOM/share/hypertex/pages/ as the default path ***/ - char *spad = (char *) getenv("AXIOM"); - if (spad == NULL) { - fprintf(stderr, - "ht_file_open:Cannot find ht data base: setenv HTPATH or AXIOM\n"); - exit(-1); - } - HTPATH = (char *) halloc(1024 * sizeof(char), "HTPATH"); - strcpy(HTPATH, spad); - strcat(HTPATH, "/share/hypertex/pages"); - } - - /** Now that I have filled HTPATH, I should try to open a file by the - given name **/ - strcpy(aname, name); - extend_ht(aname); - for (ht_file = -1, trace2 = HTPATH; - ht_file == -1 && *trace2 != '\0';) { - for (trace = fname; *trace2 != '\0' && (*trace2 != ':');) - *trace++ = *trace2++; - *trace++ = '/'; - *trace = 0; - if (!strcmp(fname, "./")) { - /** The person wishes me to check the current directory too **/ - getcwd(fname, 256); - strcat(fname, "/"); - } - if (*trace2) - trace2++; - strcat(fname, aname); - ht_file = access(fname, R_OK); - } - return (ht_file); - } -} - -static int -pathname(char *name) -{ - while (*name) - if (*name++ == '/') - return 1; - - return 0; -} - -/** This procedure opens the proper HT file **/ - -FILE * -ht_file_open(char *fname, char *aname, char *name) -{ - FILE *ht_fp; - int ret_value; - - ret_value = build_ht_filename(fname, aname, name); - if (ret_value == -1) { - fprintf(stderr, "ht_file_open: Unknown file %s\n", fname); - exit(-1); - } - - ht_fp = fopen(fname, "r"); - if (ht_fp == NULL) { - perror("ht_file_open"); - exit(-1); - } - return (ht_fp); -} - -/* - * This function is responsible for actually opening the database file. For the - * moment it gets the $AXIOM environment variable, and appends to it - * "share/hypertex/ht.db", and then opens it - */ - -/* - * Modified on 12/3/89 to take a second argument. This argument tells the - * open routine whether it is reading the db file, or writing it. If writing - * is true, then I should check to insure I have proper write access. - * -JMW - */ - -/* - * Modified again on 12/9/89 so that it now uses HTPATH as the path name. Now - * it initially loads up the path name into a static variable. Then upon - * every trip, it gets the next ht.db found. It returns NULL when no ht.db is - * found. -JMW - */ - - -FILE * -db_file_open(char *db_file) -{ - static char *db_path_trace = NULL; - char *db_file_trace; - FILE *db_fp; - char *spad; - - /* - * The first time through is the only time this could be true. If so, then - * create the default HTPATH for gDatabasePath. - */ -/* fprintf(stderr,"addfile:db_file_open: entered db_file=%s\n",db_file);*/ - if (gDatabasePath == NULL) { - gDatabasePath = (char *) getenv("HTPATH"); - if (gDatabasePath == NULL) { - spad = (char *) getenv("AXIOM"); - if (spad == NULL) { -/* fprintf(stderr, - "addfile:db_file_open: Cannot find ht data base path:\n");*/ - exit(-1); - } - gDatabasePath = (char *) halloc(sizeof(char) * 1024, "db_file_open"); - strcpy(gDatabasePath, spad); - strcat(gDatabasePath, "/share/hypertex/pages"); - } - db_path_trace = gDatabasePath; - } -/*fprintf(stderr,"addfile:db_file_open: db_path_trace=%s\n",db_path_trace);*/ - /* - * Now Loop until I find one with okay filename - */ - - for (db_fp = NULL; db_fp == NULL && *db_path_trace != '\0';) { - for (db_file_trace = db_file; *db_path_trace != ':' && - *db_path_trace != '\0'; db_path_trace++) - *db_file_trace++ = *db_path_trace; - *db_file_trace = '\0'; - strcat(db_file_trace, "/ht.db"); -/*fprintf(stderr,"addfile:db_file_open: db_file_trace=%s\n",db_file_trace);*/ -/*fprintf(stderr,"addfile:db_file_open: db_file=%s\n",db_file);*/ - - db_fp = fopen(db_file, "r"); - - if (*db_path_trace != '\0') - db_path_trace++; - } -/* if (db_fp == NULL) - fprintf(stderr,"addfile:db_file_open: exit (null)\n"); - else - fprintf(stderr,"addfile:db_file_open: exit opened\n"); -*/ - return (db_fp); -} - - -FILE * -temp_file_open(char *temp_db_file) -{ - FILE *temp_db_fp; - - /** Just make the name and open it **/ - - strcpy(temp_db_file, temp_dir); - strcat(temp_db_file, "ht2.db" /* db_file_name */ ); - temp_db_fp = fopen(temp_db_file, "w"); - - if (temp_db_fp == NULL) { - perror("temp_file_open"); - exit(-1); - } - return temp_db_fp; -} -@ -\section{License} -<<license>>= -/* -Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - - Neither the name of The Numerical ALgorithms Group Ltd. nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER -OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -@ -<<*>>= -<<license>> -<<addfile.c>> -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} - - - - |