earlybrowserreborn - Rev 1

Subversion Repositories:
Rev:
/*              Configuration-specific Initialialization        HTInit.c
**              ----------------------------------------
*/


/*      Define a basic set of suffixes and presentations
**      ------------------------------------------------
**
*/


/* Implements:
*/

#include "HTInit.h"

#include "HTML.h"
#include "FOSI.h"
#include "HTPlain.h"
#include "HTMLGen.h"
#include "HTFile.h"
#include "HTFormat.h"
#include "HTMIME.h"
#include "HTWSRC.h"
#include "HTFWriter.h"

PUBLIC void HTFormatInit NOARGS
{
#ifdef NeXT
    HTSetPresentation("application/postscript", "open %s",      1.0, 2.0, 0.0);
    /* The following needs the GIF previewer -- you might not have it. */
    HTSetPresentation("image/gif",              "open %s",      0.3, 2.0, 0.0);
    HTSetPresentation("image/x-tiff",           "open %s",      1.0, 2.0, 0.0);
    HTSetPresentation("audio/basic",            "open %s",      1.0, 2.0, 0.0);
    HTSetPresentation("*",                      "open %s",      1.0, 0.0, 0.0);
#else
    if (getenv("DISPLAY")) {    /* Must have X11 */
        HTSetPresentation("application/postscript", "ghostview %s &",   1.0, 3.0, 0.0);
        HTSetPresentation("image/gif",          "xv %s &",      1.0, 3.0, 0.0);
        HTSetPresentation("image/x-tiff",       "xv %s &",      1.0, 3.0, 0.0);
        HTSetPresentation("image/jpeg",         "xv %s &",      1.0, 3.0, 0.0);
    }
#endif
    HTSetConversion("www/mime",                 "*",            HTMIMEConvert,  1.0, 0.0, 0.0);
    HTSetConversion("application/x-wais-source","*",            HTWSRCConvert,  1.0, 0.0, 0.0);
    HTSetConversion("text/html",                "text/x-c",     HTMLToC,        0.5, 0.0, 0.0);
    HTSetConversion("text/html",                "text/plain",   HTMLToPlain,    0.5, 0.0, 0.0);
    HTSetConversion("text/html",                "www/present",  HTMLPresent,    1.0, 0.0, 0.0);
    HTSetConversion("text/fosi",                "www/present",  FOSIPresent,    1.0, 0.0, 0.0);
    HTSetConversion("text/plain",               "text/html",    HTPlainToHTML,  1.0, 0.0, 0.0);
    HTSetConversion("text/plain",               "www/present",  HTPlainPresent, 1.0, 0.0, 0.0);
    HTSetConversion("application/octet-stream", "www/present",  HTPlainPresent, 0.1, 0.0, 0.0);
/*    HTSetConversion("application/octet-stream","www/present", HTSaveLocally,  0.1, 0.0, 0.0);*/
    HTSetConversion("www/unknown",              "www/present",  HTSaveLocally,  0.3, 0.0, 0.0);
    HTSetConversion("www/source",               "www/present",  HTSaveLocally,  0.3, 0.0, 0.0);  
    HTSetConversion("image/x-xbitmap",  "application/octet-stream", HTSaveLocally, 0.3, 0.0, 0.0);
    HTSetConversion("image/gif",        "application/octet-stream", HTSaveLocally, 0.3, 0.0, 0.0);
    HTSetConversion("image/x-xpixmap",  "application/octet-stream", HTSaveLocally, 0.3, 0.0, 0.0);
    HTSetConversion("audio/basic",      "application/octet-stream", HTSaveLocally, 0.3, 0.0, 0.0);
}



/*      Define a basic set of suffixes
**      ------------------------------
**
**      The LAST suffix for a type is that used for temporary files
**      of that type.
**      The quality is an apriori bias as to whether the file should be
**      used.  Not that different suffixes can be used to represent files
**      which are of the same format but are originals or regenerated,
**      with different values.
*/


#ifndef NO_INIT
PUBLIC void HTFileInit NOARGS
{
    /*          Suffix     Contenet-Type        Content-Encoding  Quality                       */

    HTSetSuffix(".mime",   "www/mime",                  "8bit",   1.0); /* Internal -- MIME is  */
                                                                        /* not recursive        */
    HTSetSuffix(".bin",    "application/octet-stream",  "binary", 1.0); /* Uninterpreted binary */
    HTSetSuffix(".oda",    "application/oda",           "binary", 1.0);
    HTSetSuffix(".pdf",    "application/pdf",           "binary", 1.0);
    HTSetSuffix(".ai",     "application/postscript",    "8bit",   0.5); /* Adobe Illustrator    */
    HTSetSuffix(".PS",     "application/postscript",    "8bit",   0.8); /* PostScript           */
    HTSetSuffix(".eps",    "application/postscript",    "8bit",   0.8);
    HTSetSuffix(".ps",     "application/postscript",    "8bit",   0.8);
    HTSetSuffix(".rtf",    "application/x-rtf",         "7bit",   1.0); /* RTF                  */
    HTSetSuffix(".Z",      "application/x-compressed",  "binary", 1.0); /* Compressed data      */
    HTSetSuffix(".csh",    "application/x-csh",         "7bit",   0.5); /* C-shell script       */
    HTSetSuffix(".dvi",    "application/x-dvi",         "binary", 1.0); /* TeX DVI              */
    HTSetSuffix(".hdf",    "application/x-hdf",         "binary", 1.0); /* NCSA HDF data file   */
    HTSetSuffix(".latex",  "application/x-latex",       "8bit",   1.0); /* LaTeX source         */
    HTSetSuffix(".nc",     "application/x-netcdf",      "binary", 1.0); /* Unidata netCDF data  */
    HTSetSuffix(".cdf",    "application/x-netcdf",      "binary", 1.0);
    HTSetSuffix(".sh",     "application/x-sh",          "7bit",   0.5); /* Shell-script         */
    HTSetSuffix(".tcl",    "application/x-tcl",         "7bit",   0.5); /* TCL-script           */
    HTSetSuffix(".tex",    "application/x-tex",         "8bit",   1.0); /* TeX source           */
    HTSetSuffix(".texi",   "application/x-texinfo",     "7bit",   1.0); /* Texinfo              */
    HTSetSuffix(".texinfo","application/x-texinfo",     "7bit",   1.0);
    HTSetSuffix(".t",      "application/x-troff",       "7bit",   0.5); /* Troff                */
    HTSetSuffix(".roff",   "application/x-troff",       "7bit",   0.5);
    HTSetSuffix(".tr",     "application/x-troff",       "7bit",   0.5);
    HTSetSuffix(".man",    "application/x-troff-man",   "7bit",   0.5); /* Troff with man macros*/
    HTSetSuffix(".me",     "application/x-troff-me",    "7bit",   0.5); /* Troff with me macros */
    HTSetSuffix(".ms",     "application/x-troff-ms",    "7bit",   0.5); /* Troff with ms macros */
    HTSetSuffix(".src",    "application/x-wais-source", "7bit",   1.0); /* WAIS source          */
    HTSetSuffix(".zip",    "application/zip",           "binary", 1.0); /* PKZIP                */
    HTSetSuffix(".bcpio",  "application/x-bcpio",       "binary", 1.0); /* Old binary CPIO      */
    HTSetSuffix(".cpio",   "application/x-cpio",        "binary", 1.0); /* POSIX CPIO           */
    HTSetSuffix(".gtar",   "application/x-gtar",        "binary", 1.0); /* Gnu tar              */
    HTSetSuffix(".shar",   "application/x-shar",        "8bit",   1.0); /* Shell archive        */
    HTSetSuffix(".sv4cpio","application/x-sv4cpio",     "binary", 1.0); /* SVR4 CPIO            */
    HTSetSuffix(".sv4crc", "application/x-sv4crc",      "binary", 1.0); /* SVR4 CPIO with CRC   */
    HTSetSuffix(".tar",    "application/x-tar",         "binary", 1.0); /* 4.3BSD tar           */
    HTSetSuffix(".ustar",  "application/x-ustar",       "binary", 1.0); /* POSIX tar            */
    HTSetSuffix(".snd",    "audio/basic",               "binary", 1.0); /* Audio                */
    HTSetSuffix(".au",     "audio/basic",               "binary", 1.0);
    HTSetSuffix(".aiff",   "audio/x-aiff",              "binary", 1.0);
    HTSetSuffix(".aifc",   "audio/x-aiff",              "binary", 1.0);
    HTSetSuffix(".aif",    "audio/x-aiff",              "binary", 1.0);
    HTSetSuffix(".wav",    "audio/x-wav",               "binary", 1.0); /* Windows+ WAVE format */
    HTSetSuffix(".gif",    "image/gif",                 "binary", 1.0); /* GIF                  */
    HTSetSuffix(".ief",    "image/ief",                 "binary", 1.0); /* Image Exchange fmt   */
    HTSetSuffix(".jpg",    "image/jpeg",                "binary", 1.0); /* JPEG                 */
    HTSetSuffix(".JPG",    "image/jpeg",                "binary", 1.0);
    HTSetSuffix(".JPE",    "image/jpeg",                "binary", 1.0);
    HTSetSuffix(".jpe",    "image/jpeg",                "binary", 1.0);
    HTSetSuffix(".JPEG",   "image/jpeg",                "binary", 1.0);
    HTSetSuffix(".jpeg",   "image/jpeg",                "binary", 1.0);
    HTSetSuffix(".tif",    "image/tiff",                "binary", 1.0); /* TIFF                 */
    HTSetSuffix(".tiff",   "image/tiff",                "binary", 1.0);
    HTSetSuffix(".ras",    "image/cmu-raster",          "binary", 1.0);
    HTSetSuffix(".pnm",    "image/x-portable-anymap",   "binary", 1.0); /* PBM Anymap format    */
    HTSetSuffix(".pbm",    "image/x-portable-bitmap",   "binary", 1.0); /* PBM Bitmap format    */
    HTSetSuffix(".pgm",    "image/x-portable-graymap",  "binary", 1.0); /* PBM Graymap format   */
    HTSetSuffix(".ppm",    "image/x-portable-pixmap",   "binary", 1.0); /* PBM Pixmap format    */
    HTSetSuffix(".rgb",    "image/x-rgb",               "binary", 1.0);
    HTSetSuffix(".xbm",    "image/x-xbitmap",           "binary", 1.0); /* X bitmap             */
    HTSetSuffix(".xpm",    "image/x-xpixmap",           "binary", 1.0); /* X pixmap format      */
    HTSetSuffix(".xwd",    "image/x-xwindowdump",       "binary", 1.0); /* X window dump (xwd)  */
    HTSetSuffix(".html",   "text/html",                 "8bit",   1.0); /* HTML                 */
    HTSetSuffix(".fosi",   "text/fosi",                 "8bit",   1.0); /* FOSI         (PYW)   */
    HTSetSuffix(".c",      "text/plain",                "7bit",   0.5); /* C source             */
    HTSetSuffix(".h",      "text/plain",                "7bit",   0.5); /* C headers            */
    HTSetSuffix(".C",      "text/plain",                "7bit",   0.5); /* C++ source           */
    HTSetSuffix(".cc",     "text/plain",                "7bit",   0.5); /* C++ source           */
    HTSetSuffix(".hh",     "text/plain",                "7bit",   0.5); /* C++ headers          */
    HTSetSuffix(".m",      "text/plain",                "7bit",   0.5); /* Objective-C source   */
    HTSetSuffix(".f90",    "text/plain",                "7bit",   0.5); /* Fortran 90 source    */
    HTSetSuffix(".txt",    "text/plain",                "7bit",   0.5); /* Plain text           */
    HTSetSuffix(".rtx",    "text/richtext",             "7bit",   1.0); /* MIME Richtext format */
    HTSetSuffix(".tsv",    "text/tab-separated-values", "7bit",   1.0); /* Tab-separated values */
    HTSetSuffix(".etx",    "text/x-setext",             "7bit",   0.9); /* Struct Enchanced Txt */
    HTSetSuffix(".MPG",    "video/mpeg",                "binary", 1.0); /* MPEG                 */
    HTSetSuffix(".mpg",    "video/mpeg",                "binary", 1.0);
    HTSetSuffix(".MPE",    "video/mpeg",                "binary", 1.0);
    HTSetSuffix(".mpe",    "video/mpeg",                "binary", 1.0);
    HTSetSuffix(".MPEG",   "video/mpeg",                "binary", 1.0);
    HTSetSuffix(".mpeg",   "video/mpeg",                "binary", 1.0);
    HTSetSuffix(".qt",     "video/quicktime",           "binary", 1.0); /* QuickTime            */
    HTSetSuffix(".mov",    "video/quicktime",           "binary", 1.0);
    HTSetSuffix(".avi",    "video/x-msvideo",           "binary", 1.0); /* MS Video for Windows */
    HTSetSuffix(".movie",  "video/x-sgi-movie",         "binary", 1.0); /* SGI "moviepalyer"    */
   
    HTSetSuffix("*.*",     "application/octet-stream",  "binary", 0.1);
    HTSetSuffix("*",       "text/plain",                "7bit",   0.5);

}
#endif /* NO_INIT */