⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 htfile.h

📁 用于linux和其他unix下面的
💻 H
字号:
/*							File access in libwww**				FILE ACCESS****  These are routines for local file access used by WWW browsers and servers.**  Implemented by HTFile.c.****  If the file is not a local file, then we pass it on to HTFTP in case it**  can be reached by FTP.*/#ifndef HTFILE_H#define HTFILE_H#include <HTFormat.h>#include <HTAccess.h>#ifndef HTML_H#include <HTML.h>               /* SCW */#endif /* HTML_H *//***  Controlling globals****  These flags control how directories and files are represented as**  hypertext, and are typically set by the application from command**  line options, etc.*/extern int HTDirAccess;         /* Directory access level */#define HT_DIR_FORBID           0       /* Altogether forbidden */#define HT_DIR_SELECTIVE        1       /* If HT_DIR_ENABLE_FILE exists */#define HT_DIR_OK               2       /* Any accesible directory */#define HT_DIR_ENABLE_FILE      ".www_browsable" /* If exists, can browse */extern int HTDirReadme;         /* Include readme files in listing? */                                        /* Values: */#define HT_DIR_README_NONE      0       /* No */#define HT_DIR_README_TOP       1       /* Yes, first */#define HT_DIR_README_BOTTOM    2       /* Yes, at the end */#define HT_DIR_README_FILE              "README"/***  Convert filenames between local and WWW formats*/extern char * HTURLPath_toFile PARAMS((CONST char * name, BOOL expand_all));extern char * HTnameOfFile_WWW PARAMS((CONST char * name, BOOL WWW_prefix, BOOL expand_all));#define HTLocalName(name)      HTnameOfFile_WWW(name,TRUE,TRUE)#define HTfullURL_toFile(name) HTnameOfFile_WWW(name,FALSE,TRUE)#define HTpartURL_toFile(name) HTnameOfFile_WWW(name,FALSE,FALSE)/***  Make a WWW name from a full local path name*/extern char * WWW_nameOfFile PARAMS((CONST char * name));/***  Generate the name of a cache file*/extern char * HTCacheFileName PARAMS((CONST char * name));/***  Output directory titles**** This is (like the next one) used by HTFTP. It is common code to generate** the title and heading 1 and the parent directory link for any anchor.**** changed to return TRUE if parent directory link was generated,** FALSE otherwise - KW*/extern BOOL HTDirTitles PARAMS((        HTStructured *  target,        HTAnchor *      anchor,	BOOL		tildeIsTop));/***	Check existence.*/extern int HTStat PARAMS((	CONST char *	filename,	struct stat *	data));/*	Load a document.**	----------------*/extern int HTLoadFile PARAMS((	CONST char *		addr,	HTParentAnchor *	anchor,	HTFormat		format_out,	HTStream *		sink));/***  Output a directory entry**** This is used by HTFTP.c for example -- it is a common routine for**  generating a linked directory entry.*/extern void HTDirEntry PARAMS((        HTStructured *  target,         /* in which to put the linked text */        CONST char *    tail,           /* last part of directory name */        CONST char *    entry));        /* name of this entry *//***  HTSetSuffix: Define the representation for a file suffix****  This defines a mapping between local file suffixes and file content**  types and encodings.****  ON ENTRY,****  suffix		includes the "." if that is important (normally, yes!)****  representation	is MIME-style content-type****  encoding		is MIME-style content-transfer-encoding**			(8bit, 7bit, etc) or HTTP-style content-encoding**			(gzip, compress etc.)****  quality		an a priori judgement of the quality of such files**			(0.0..1.0)****  HTSetSuffix5 has one more parameter for a short description of the type**  which is otherwise derived from the representation:****  desc		is a short textual description, or NULL****  Examples:   HTSetSuffix(".ps", "application/postscript", "8bit", 1.0);**  Examples:   HTSetSuffix(".psz", "application/postscript", "gzip", 1.0);**  A MIME type could also indicate a non-trivial encoding on its own**  ("application/x-compressed-tar"), but in that case don't use enconding**  to also indicate it but use "binary" etc.*/extern void HTSetSuffix5 PARAMS((        CONST char *    suffix,        CONST char *    representation,        CONST char *    encoding,        CONST char *    desc,        double          quality));#define HTSetSuffix(suff,rep,enc,q) HTSetSuffix5(suff, rep, enc, NULL, q)/***  HTFileFormat: Get Representation and Encoding from file name.****  ON EXIT,****  return		The represntation it imagines the file is in.****  *pEncoding		The encoding (binary, 7bit, etc). See HTSetSuffix.*/extern HTFormat HTFileFormat PARAMS((	CONST char *		filename,	HTAtom **		pEncoding,	CONST char **		pDesc));/***  HTCharsetFormat: Revise the file format in relation to the Lynx charset.****  This checks the format associated with an anchor for**  for an extended MIME Content-Type, and if a charset is**  indicated, sets Lynx up for proper handling in relation**  to the currently selected character set. - FM*/extern HTFormat HTCharsetFormat PARAMS((	HTFormat		format,	HTParentAnchor *	anchor,	int			default_LYhndl));/*	Get various pieces of meta info from file name.**	-----------------------------------------------****  LYGetFileInfo fills in information that can be determined without**  an actual (new) access to the filesystem, based on current suffix**  and character set configuration.  If the file has been loaded and**  parsed before  (with the same URL generated here!) and the anchor**  is still around, some results may be influenced by that (in**  particular, charset info from a META tag - this is not actually**  tested!).**  The caller should not keep pointers to the returned objects around**  for too long, the valid lifetimes vary. In particular, the returned**  charset string should be copied if necessary.  If return of the**  file_anchor is requested, that one can be used to retrieve**  additional bits of info that are stored in the anchor object and**  are not covered here; as usual, don't keep pointers to the**  file_anchor longer than necessary since the object may disappear**  through HTuncache_current_document or at the next document load.**  - kw*/extern void LYGetFileInfo PARAMS((	CONST char *		filename,	HTParentAnchor **	pfile_anchor,	HTFormat *		pformat,	HTAtom **		pencoding,	CONST char**		pdesc,	CONST char**		pcharset,	int *			pfile_cs));/***  Determine file value from file name.*/extern float HTFileValue PARAMS((	CONST char *	filename));/***  Determine compression type from file name, by looking at its suffix.*/typedef enum {    cftNone    , cftCompress    , cftGzip    , cftBzip2} CompressFileType;extern CompressFileType HTCompressFileType PARAMS((	char *			filename,	char *			dots,	char **			suffix));/***  Determine write access to a file.****  ON EXIT,****  return value	YES if file can be accessed and can be written to.****  BUGS****   Isn't there a quicker way?*/#if defined(HAVE_CONFIG_H)#ifndef HAVE_GETGROUPS#define NO_GROUPS#endif#else#ifdef VMS#define NO_GROUPS#endif /* VMS */#ifdef NO_UNIX_IO#define NO_GROUPS#endif /* NO_UNIX_IO */#ifdef PCNFS#define NO_GROUPS#endif /* PCNFS */#ifdef NOUSERS#define NO_GROUPS#endif /* PCNFS */#endif /* HAVE_CONFIG_H */extern BOOL HTEditable PARAMS((CONST char * filename));/*	Make a save stream.**	-------------------*/extern HTStream * HTFileSaveStream PARAMS((	HTParentAnchor *	anchor));/*** Determine a suitable suffix, given the representation.****  ON ENTRY,****  rep			is the atomized MIME style representation**  enc			is an encoding (8bit, binary, gzip, compress,..)****  ON EXIT,****  returns		a pointer to a suitable suffix string if one has**			been found, else NULL.*/extern CONST char * HTFileSuffix PARAMS((                HTAtom* rep,                CONST char* enc));/***  The Protocols*/#ifdef GLOBALREF_IS_MACROextern GLOBALREF (HTProtocol,HTFTP);extern GLOBALREF (HTProtocol,HTFile);#elseGLOBALREF HTProtocol HTFTP, HTFile;#endif /* GLOBALREF_IS_MACRO */#endif /* HTFILE_H *//* end of HTFile */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -