stm_object.h.svn-base

来自「SumatraPDF是一款小型开源的pdf阅读工具。虽然玲珑小巧(只有800多K」· SVN-BASE 代码 · 共 135 行

SVN-BASE
135
字号
/* * Dynamic objects. * The same type of objects as found in PDF and PostScript. * Used by the filter library and the mupdf parser. */typedef struct fz_obj_s fz_obj;typedef struct fz_keyval_s fz_keyval;typedef enum fz_objkind_e{	FZ_NULL,	FZ_BOOL,	FZ_INT,	FZ_REAL,	FZ_STRING,	FZ_NAME,	FZ_ARRAY,	FZ_DICT,	FZ_INDIRECT,	FZ_POINTER} fz_objkind;struct fz_keyval_s{	fz_obj *k;	fz_obj *v;};struct fz_obj_s{	unsigned short refs;	fz_objkind kind;	union	{		int b;		int i;		float f;		struct {			unsigned short len;			char buf[1];		} s;		char n[1];		struct {			int len;			int cap;			fz_obj **items;		} a;		struct {			char sorted;			int len;			int cap;			fz_keyval *items;		} d;		struct {			int oid;			int gid;		} r;		void *p;	} u;};fz_error *fz_newnull(fz_obj **op);fz_error *fz_newbool(fz_obj **op, int b);fz_error *fz_newint(fz_obj **op, int i);fz_error *fz_newreal(fz_obj **op, float f);fz_error *fz_newname(fz_obj **op, char *str);fz_error *fz_newstring(fz_obj **op, char *str, int len);fz_error *fz_newindirect(fz_obj **op, int oid, int gid);fz_error *fz_newpointer(fz_obj **op, void *p);fz_error *fz_newarray(fz_obj **op, int initialcap);fz_error *fz_newdict(fz_obj **op, int initialcap);fz_error *fz_copyarray(fz_obj **op, fz_obj *array);fz_error *fz_copydict(fz_obj **op, fz_obj *dict);fz_error *fz_deepcopyarray(fz_obj **op, fz_obj *array);fz_error *fz_deepcopydict(fz_obj **op, fz_obj *dict);fz_obj *fz_keepobj(fz_obj *obj);void fz_dropobj(fz_obj *obj);/* type queries */int fz_isnull(fz_obj *obj);int fz_isbool(fz_obj *obj);int fz_isint(fz_obj *obj);int fz_isreal(fz_obj *obj);int fz_isname(fz_obj *obj);int fz_isstring(fz_obj *obj);int fz_isarray(fz_obj *obj);int fz_isdict(fz_obj *obj);int fz_isindirect(fz_obj *obj);int fz_ispointer(fz_obj *obj);int fz_objcmp(fz_obj *a, fz_obj *b);/* silent failure, no error reporting */int fz_tobool(fz_obj *obj);int fz_toint(fz_obj *obj);float fz_toreal(fz_obj *obj);char *fz_toname(fz_obj *obj);char *fz_tostrbuf(fz_obj *obj);int fz_tostrlen(fz_obj *obj);int fz_tonum(fz_obj *obj);int fz_togen(fz_obj *obj);void *fz_topointer(fz_obj *obj);fz_error *fz_newnamefromstring(fz_obj **op, fz_obj *str);int fz_arraylen(fz_obj *array);fz_obj *fz_arrayget(fz_obj *array, int i);fz_error *fz_arrayput(fz_obj *array, int i, fz_obj *obj);fz_error *fz_arraypush(fz_obj *array, fz_obj *obj);int fz_dictlen(fz_obj *dict);fz_obj *fz_dictgetkey(fz_obj *dict, int idx);fz_obj *fz_dictgetval(fz_obj *dict, int idx);fz_obj *fz_dictget(fz_obj *dict, fz_obj *key);fz_obj *fz_dictgets(fz_obj *dict, char *key);fz_obj *fz_dictgetsa(fz_obj *dict, char *key, char *abbrev);fz_error *fz_dictput(fz_obj *dict, fz_obj *key, fz_obj *val);fz_error *fz_dictputs(fz_obj *dict, char *key, fz_obj *val);fz_error *fz_dictdel(fz_obj *dict, fz_obj *key);fz_error *fz_dictdels(fz_obj *dict, char *key);void fz_sortdict(fz_obj *dict);int fz_sprintobj(char *s, int n, fz_obj *obj, int tight);void fz_debugobj(fz_obj *obj);fz_error *fz_parseobj(fz_obj **objp, char *s);fz_error *fz_packobj(fz_obj **objp, char *fmt, ...);fz_error *fz_unpackobj(fz_obj *obj, char *fmt, ...);char *fz_objkindstr(fz_obj *obj);

⌨️ 快捷键说明

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