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

📄 url.h

📁 MIDI解码程序(用VC编写)
💻 H
字号:
/*    TiMidity++ -- MIDI to WAVE converter and player    Copyright (C) 1999-2002 Masanao Izumo <mo@goice.co.jp>    Copyright (C) 1995 Tuukka Toivonen <tt@cgs.fi>    This program 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.    This program 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 General Public License for more details.    You should have received a copy of the GNU General Public License    along with this program; if not, write to the Free Software    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*/#ifndef ___URL_H_#define ___URL_H_/* This header file from liburl-1.8.3. * You can get full source from: * http://www.goice.co.jp/member/mo/release/index.html#liburl */#define URL_LIB_VERSION "1.9.5"/* Define if you want to enable pipe command scheme ("command|") */#define PIPE_SCHEME_ENABLE/* Define if you want to appended on a user's home directory if a filename * is beginning with '~' */#if !defined(__MACOS__) && !defined(__W32__)#define TILD_SCHEME_ENABLE#endif/* Define if you want to use soft directory cache */#ifndef URL_DIR_CACHE_DISABLE#define URL_DIR_CACHE_ENABLE#endif /* URL_DIR_CACHE_DISABLE *//* Define if you want to use XOVER command in NNTP *//* #define URL_NEWS_XOVER_SUPPORT "XOVER", "XOVERVIEW" *//* M:Must, O:Optional defined */typedef struct _URL{    int   type;								/* M */    long  (* url_read)(struct _URL *url, void *buff, long n);		/* M */    char *(* url_gets)(struct _URL *url, char *buff, int n);		/* O */    int   (* url_fgetc)(struct _URL *url);				/* O */    long  (* url_seek)(struct _URL *url, long offset, int whence);	/* O */    long  (* url_tell)(struct _URL *url);				/* O */    void  (* url_close)(struct _URL *url);				/* M */    unsigned long nread;	/* Reset in url_seek, url_rewind,				   url_set_readlimit */    unsigned long readlimit;    int		  eof;		/* Used in url_nread and others */} *URL;#define URLm(url, m) (((URL)url)->m)#define url_eof(url) URLm((url), eof)/* open URL stream */extern URL url_open(char *url_string);/* close URL stream */extern void url_close(URL url);/* read n bytes */extern long url_read(URL url, void *buff, long n);extern long url_safe_read(URL url, void *buff, long n);extern long url_nread(URL url, void *buff, long n);/* read a line *//* Like a fgets */extern char *url_gets(URL url, char *buff, int n);/* Allow termination by CR or LF or both. Ignored empty lines. * CR or LF is truncated. * Success: length of the line. * EOF or Error: EOF */extern int url_readline(URL url, char *buff, int n);/* read a byte */extern int url_fgetc(URL url);#define url_getc(url) \    ((url)->nread >= (url)->readlimit ? ((url)->eof = 1, EOF) : \     (url)->url_fgetc != NULL ? ((url)->nread++, (url)->url_fgetc(url)) : \      url_fgetc(url))/* seek position */extern long url_seek(URL url, long offset, int whence);/* get the current position */extern long url_tell(URL url);/* skip n bytes */extern void url_skip(URL url, long n);/* seek to first position */extern void url_rewind(URL url);/* dump */void *url_dump(URL url, long nbytes, long *real_read);/* set read limit */void url_set_readlimit(URL url, long readlimit);/* url_errno to error message */extern char *url_strerror(int no);/* allocate URL structure */extern URL alloc_url(int size);/* Check URL type. */extern int url_check_type(char *url_string);/* replace `~' to user directory */extern char *url_expand_home_dir(char *filename);extern char *url_unexpand_home_dir(char *filename);extern int url_errno;enum url_errtypes{    URLERR_NONE = 10000,	/* < 10000 represent system call's errno */    URLERR_NOURL,		/* Unknown URL */    URLERR_OPERM,		/* Operation not permitted */    URLERR_CANTOPEN,		/* Can't open a URL */    URLERR_IURLF,		/* Invalid URL form */    URLERR_URLTOOLONG,		/* URL too long */    URLERR_NOMAILADDR,		/* No mail address */    URLERR_MAXNO};struct URL_module{    /* url type */    int type;    /* URL checker */    int (* name_check)(char *url_string);    /* Once call just before url_open(). */    int (* url_init)(void);    /* Open specified URL */    URL (* url_open)(char *url_string);    /* chain next modules */    struct URL_module *chain;};extern void url_add_module(struct URL_module *m);extern void url_add_modules(struct URL_module *m, ...);extern URL url_file_open(char *filename);extern URL url_dir_open(char *directory_name);extern URL url_http_open(char *url_string);extern URL url_ftp_open(char *url_string);extern URL url_newsgroup_open(char *url_string);extern URL url_news_open(char *url_string);extern URL url_pipe_open(char *command);/* No URL_module */extern URL url_mem_open(char *memory, long memsiz, int autofree);extern URL url_inflate_open(URL instream, long compsize, int autoclose);extern URL url_buff_open(URL url, int autoclose);extern URL url_cache_open(URL url, int autoclose);extern void url_cache_detach(URL url);extern void url_cache_disable(URL url);extern URL url_uudecode_open(URL reader, int autoclose);extern URL url_b64decode_open(URL reader, int autoclose);extern URL url_hqxdecode_open(URL reader, int dataonly, int autoclose);extern URL url_qsdecode_open(URL reader, int autoclose);extern URL url_cgi_escape_open(URL reader, int autoclose);extern URL url_cgi_unescape_open(URL reader, int autoclose);extern char *url_dir_name(URL url);extern char *url_newsgroup_name(URL url);extern int url_news_connection_cache(int flag);extern char *url_lib_version;extern char *user_mailaddr;extern char *url_user_agent;extern char *url_http_proxy_host;extern unsigned short url_http_proxy_port;extern char *url_ftp_proxy_host;extern unsigned short url_ftp_proxy_port;extern int url_newline_code;extern int uudecode_unquote_html;enum url_types{    URL_none_t,			/* Undefined URL */    URL_file_t,			/* File system */    URL_dir_t,			/* Directory entry */    URL_http_t,			/* HTTP */    URL_ftp_t,			/* FTP */    URL_news_t,			/* NetNews article */    URL_newsgroup_t,		/* NetNews group */    URL_pipe_t,			/* Pipe */    URL_mem_t,			/* On memory */    URL_buff_t,			/* Buffered stream */    URL_cache_t,		/* Cached stream */    URL_uudecode_t,		/* UU decoder */    URL_b64decode_t,		/* Base64 decoder */    URL_qsdecode_t,		/* Quoted-string decoder */    URL_hqxdecode_t,		/* HQX decoder */    URL_cgi_escape_t,		/* WWW CGI Escape */    URL_cgi_unescape_t,		/* WWW CGI Unescape */    URL_arc_t,			/* arc stream */    URL_inflate_t = 99,		/* LZ77 decode stream */    URL_extension_t = 100	/* extentional stream >= 100 */};enum url_news_conn_type{    URL_NEWS_CONN_NO_CACHE,    URL_NEWS_CONN_CACHE,    URL_NEWS_CLOSE_CACHE,    URL_NEWS_GET_FLAG};#define IS_URL_SEEK_SAFE(url) ((url)->url_seek != NULL && \			       (url)->type != URL_buff_t)#define URL_MAX_READLIMIT ((~(unsigned long)0) >> 1)#endif /* ___URL_H_ */

⌨️ 快捷键说明

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