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

📄 uudeview.h

📁 UUDeview是一个编码解码器
💻 H
字号:
/* * This file is part of uudeview, the simple and friendly multi-part multi- * file uudecoder  program  (c) 1994-2001 by Frank Pilhofer. The author may * be contacted at fp@fpx.de * * 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. */#ifndef __UUDEVIEW_H__#define __UUDEVIEW_H__/* * This include file features all the definitions that should * be externally visible. This isn't much. * * $Id: uudeview.h,v 1.18 2003/09/29 23:27:47 fp Exp $ */#ifndef _ANSI_ARGS_#ifdef PROTOTYPES#define _ANSI_ARGS_(c)	c#else#define _ANSI_ARGS_(c)	()#endif#endif/* * Message Types */#define UUMSG_MESSAGE	(0)	/* just a message, nothing important */#define UUMSG_NOTE	(1)	/* something that should be noticed */#define UUMSG_WARNING	(2)	/* important msg, processing continues */#define UUMSG_ERROR	(3)	/* processing has been terminated */#define UUMSG_FATAL	(4)	/* decoder cannot process further requests */#define UUMSG_PANIC	(5)	/* recovery impossible, app must terminate *//* * Return Values */#define UURET_OK	(0)	/* everything went fine */#define UURET_IOERR	(1)	/* I/O Error - examine errno */#define UURET_NOMEM	(2)	/* not enough memory */#define UURET_ILLVAL	(3)	/* illegal value for operation */#define UURET_NODATA	(4)	/* decoder didn't find any data */#define UURET_NOEND	(5)	/* encoded data wasn't ended properly */#define UURET_UNSUP	(6)	/* unsupported function (encoding) */#define UURET_EXISTS	(7)	/* file exists (decoding) */#define UURET_CONT	(8)	/* continue -- special from ScanPart */#define UURET_CANCEL	(9)	/* operation canceled *//* * File states, may be OR'ed */#define UUFILE_READ	(0)	/* Read in, but not further processed */#define UUFILE_MISPART	(1)	/* Missing Part(s) detected */#define UUFILE_NOBEGIN	(2)	/* No 'begin' found */#define UUFILE_NOEND	(4)	/* No 'end' found */#define UUFILE_NODATA	(8)	/* File does not contain valid uudata */#define UUFILE_OK	(16)	/* All Parts found, ready to decode */#define UUFILE_ERROR	(32)	/* Error while decoding */#define UUFILE_DECODED	(64)	/* Successfully decoded */#define UUFILE_TMPFILE	(128)	/* Temporary decoded file exists *//* * Encoding Types */#define UU_ENCODED	(1)	/* UUencoded data   */#define B64ENCODED	(2)	/* Mime-Base64 data */#define XX_ENCODED	(3)	/* XXencoded data   */#define BH_ENCODED	(4)	/* Binhex encoded   */#define PT_ENCODED	(5)	/* Plain-Text encoded (MIME) */#define QP_ENCODED	(6)	/* Quoted-Printable (MIME)   */#define YENC_ENCODED	(7)	/* yEnc encoded *//* * Option indices for GetOption / SetOption */#define UUOPT_VERSION	(0)	/* version number MAJOR.MINORplPATCH (ro) */#define UUOPT_FAST	(1)	/* assumes only one part per file */#define UUOPT_DUMBNESS	(2)	/* switch off the program's intelligence */#define UUOPT_BRACKPOL	(3)	/* give numbers in [] higher precendence */#define UUOPT_VERBOSE	(4)	/* generate informative messages */#define UUOPT_DESPERATE	(5)	/* try to decode incomplete files */#define UUOPT_IGNREPLY	(6)	/* ignore RE:plies (off by default) */#define UUOPT_OVERWRITE	(7)	/* whether it's OK to overwrite ex. files */#define UUOPT_SAVEPATH	(8)	/* prefix to save-files on disk */#define UUOPT_IGNMODE	(9)	/* ignore the original file mode */#define UUOPT_DEBUG	(10)	/* print messages with FILE/LINE info */#define UUOPT_ERRNO	(14)	/* get last error code for UURET_IOERR (ro) */#define UUOPT_PROGRESS	(15)	/* retrieve progress information */#define UUOPT_USETEXT	(16)	/* handle text messages */#define UUOPT_PREAMB	(17)	/* handle Mime preambles/epilogues */#define UUOPT_TINYB64	(18)	/* detect short B64 outside of Mime */#define UUOPT_ENCEXT	(19)	/* extension for single-part encoded files */#define UUOPT_REMOVE    (20)    /* remove input files after decoding */#define UUOPT_MOREMIME  (21)    /* strict MIME adherence *//* * Code for the "action" in the progress structure */#define UUACT_IDLE	(0)	/* we don't do anything */#define UUACT_SCANNING	(1)	/* scanning an input file */#define UUACT_DECODING	(2)	/* decoding into a temp file */#define UUACT_COPYING	(3)	/* copying temp to target */#define UUACT_ENCODING	(4)	/* encoding a file *//* * forward definition */struct _uufile;/* * Structure for holding the list of files that have been found * uufile items are inserted into this list with UUInsertPartToList * After inserting a bunch of files, UUCheckGlobalList must be called * to update the states. */typedef struct _uulist {  short    state;		/* Status as described by the macros above */  short    mode;		/* file mode as found on begin line        */  int      begin;		/* part number where begin was detected    */  int      end;			/* part number where end was detected      */  short    uudet;		/* Encoding type (see macros above)        */  int      flags;		/* flags, especially for single-part files */  long     size;		/* approximate size of resulting file      */  char    *filename;		/* malloc'ed file name                     */  char    *subfname;		/* malloc'ed ID from subject line          */  char    *mimeid;		/* malloc'ed MIME-ID, if available         */  char    *mimetype;		/* malloc'ed Content-Type, if available    */  char    *binfile;		/* name of temp file, if already decoded   */  struct _uufile *thisfile;	/* linked list of this file's parts        */  int     *haveparts;		/* the parts we have (max. 256 are listed) */  int     *misparts;		/* list of missing parts (max. 256)        */  struct _uulist *NEXT;		/* next item of the list                   */  struct _uulist *PREV;		/* previous item of the list               */} uulist;/* * The "progress" structure which is passed to the Busy Callback */typedef struct {  int  action;			/* see UUACT_* definitions above           */  char curfile[256];		/* the file we are working on, incl. path  */  int  partno;			/* part we're currently decoding           */  int  numparts;		/* total number of parts of this file      */  long fsize;			/* size of the current file                */  int  percent;			/* % of _current part_                     */  long foffset;			/* file offset -- internal use only        */  long totsize;			/* file total size -- internal use only    */} uuprogress;  /* * Externally visible Functions */#ifndef UUEXPORT#define UUEXPORT#endif#ifdef __cplusplusextern "C" {#endifint	UUEXPORT UUInitialize		_ANSI_ARGS_((void));int	UUEXPORT UUGetOption		_ANSI_ARGS_((int, int *, char *, int));int	UUEXPORT UUSetOption		_ANSI_ARGS_((int, int, char *));char *	UUEXPORT UUstrerror		_ANSI_ARGS_((int));int	UUEXPORT UUSetMsgCallback	_ANSI_ARGS_((void *,						     void (*) (void *, 							       char *,							       int)));int	UUEXPORT UUSetBusyCallback	_ANSI_ARGS_((void *,						     int (*) (void *,							      uuprogress *),						     long));int	UUEXPORT UUSetFileCallback	_ANSI_ARGS_((void *,						     int (*) (void *, char *,							      char *, int)));int	UUEXPORT UUSetFNameFilter	_ANSI_ARGS_((void *,						     char * (*) (void *,								 char *)));char *	UUEXPORT UUFNameFilter		_ANSI_ARGS_((char *));int	UUEXPORT UULoadFile		_ANSI_ARGS_((char *, char *, int));int	UUEXPORT UULoadFileWithPartNo	_ANSI_ARGS_((char *, char *, int, int));uulist *UUEXPORT UUGetFileListItem	_ANSI_ARGS_((int));int	UUEXPORT UURenameFile		_ANSI_ARGS_((uulist *, char *));int	UUEXPORT UUDecodeToTemp		_ANSI_ARGS_((uulist *));int	UUEXPORT UURemoveTemp		_ANSI_ARGS_((uulist *));int	UUEXPORT UUDecodeFile		_ANSI_ARGS_((uulist *, char *));int	UUEXPORT UUInfoFile		_ANSI_ARGS_((uulist *, void *,						     int (*) (void *, 							      char *)));int	UUEXPORT UUSmerge		_ANSI_ARGS_((int));int	UUEXPORT UUCleanUp		_ANSI_ARGS_((void));int	UUEXPORT UUQuickDecode		_ANSI_ARGS_((FILE *, FILE *,						     char *, long));int	UUEXPORT UUEncodeMulti		_ANSI_ARGS_((FILE *, FILE *,						     char *, int,						     char *, char *, int));int	UUEXPORT UUEncodePartial	_ANSI_ARGS_((FILE *, FILE *,						     char *, int,						     char *, char *,						     int, int, long,						     unsigned long*));int	UUEXPORT UUEncodeToStream	_ANSI_ARGS_((FILE *, FILE *,						     char *, int,						     char *, int));int	UUEXPORT UUEncodeToFile		_ANSI_ARGS_((FILE *, char *, int,						     char *, char *, long));int	UUEXPORT UUE_PrepSingle		_ANSI_ARGS_((FILE *, FILE *,						     char *, int,						     char *, int,						     char *, char *,						     char *, int));int	UUEXPORT UUE_PrepPartial	_ANSI_ARGS_((FILE *, FILE *,						     char *, int,						     char *, int,						     int, long, long, char *,						     char *, char *, int));int	UUEXPORT UUE_PrepSingleExt	_ANSI_ARGS_((FILE *, FILE *,						     char *, int,						     char *, int,						     char *, char *,						     char *, char *,						     int));int	UUEXPORT UUE_PrepPartialExt	_ANSI_ARGS_((FILE *, FILE *,						     char *, int,						     char *, int,						     int, long, long, char *,						     char *, char *, char *,						     int));#ifdef __cplusplus}#endif#endif

⌨️ 快捷键说明

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