14887Schin 24887Schin /* : : generated by proto : : */ 34887Schin /*********************************************************************** 44887Schin * * 54887Schin * This software is part of the ast package * 6*12068SRoger.Faulkner@Oracle.COM * Copyright (c) 1985-2010 AT&T Intellectual Property * 74887Schin * and is licensed under the * 84887Schin * Common Public License, Version 1.0 * 98462SApril.Chin@Sun.COM * by AT&T Intellectual Property * 104887Schin * * 114887Schin * A copy of the License is available at * 124887Schin * http://www.opensource.org/licenses/cpl1.0.txt * 134887Schin * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 144887Schin * * 154887Schin * Information and Software Systems Research * 164887Schin * AT&T Research * 174887Schin * Florham Park NJ * 184887Schin * * 194887Schin * Glenn Fowler <gsf@research.att.com> * 204887Schin * David Korn <dgk@research.att.com> * 214887Schin * Phong Vo <kpv@research.att.com> * 224887Schin * * 234887Schin ***********************************************************************/ 244887Schin 254887Schin 264887Schin /* 274887Schin * mime/mailcap interface 284887Schin */ 294887Schin 304887Schin #ifndef _MIMETYPE_H 314887Schin #if !defined(__PROTO__) 324887Schin #include <prototyped.h> 334887Schin #endif 344887Schin #if !defined(__LINKAGE__) 354887Schin #define __LINKAGE__ /* 2004-08-11 transition */ 364887Schin #endif 374887Schin 384887Schin #define _MIMETYPE_H 1 394887Schin 404887Schin #include <sfio.h> 414887Schin #include <ls.h> 424887Schin 434887Schin #define MIME_VERSION 19970717L 444887Schin 454887Schin #ifndef MIME_FILES 464887Schin #define MIME_FILES "~/.mailcap:/usr/local/etc/mailcap:/usr/etc/mailcap:/etc/mailcap:/etc/mail/mailcap:/usr/public/lib/mailcap" 474887Schin #endif 484887Schin 494887Schin #define MIME_FILES_ENV "MAILCAP" 504887Schin 514887Schin #define MIME_LIST (1<<0) /* mimeload arg is : list */ 524887Schin #define MIME_NOMAGIC (1<<1) /* no magic for mimetype() */ 534887Schin #define MIME_PIPE (1<<2) /* mimeview() io is piped */ 544887Schin #define MIME_REPLACE (1<<3) /* replace existing definition */ 554887Schin 564887Schin #define MIME_USER (1L<<16) /* first user flag bit */ 574887Schin 584887Schin struct Mime_s; 594887Schin typedef struct Mime_s Mime_t; 604887Schin 614887Schin struct Mimedisc_s; 624887Schin typedef struct Mimedisc_s Mimedisc_t; 634887Schin 644887Schin typedef int (*Mimevalue_f) __PROTO__((Mime_t*, __V_*, char*, size_t, Mimedisc_t*)); 654887Schin 664887Schin struct Mimedisc_s 674887Schin { 684887Schin unsigned long version; /* interface version */ 694887Schin unsigned long flags; /* MIME_* flags */ 704887Schin Error_f errorf; /* error function */ 714887Schin Mimevalue_f valuef; /* value extraction function */ 724887Schin }; 734887Schin 744887Schin struct Mime_s 754887Schin { 764887Schin const char* id; /* library id string */ 774887Schin 784887Schin #ifdef _MIME_PRIVATE_ 794887Schin _MIME_PRIVATE_ 804887Schin #endif 814887Schin 824887Schin }; 834887Schin 844887Schin #if _BLD_ast && defined(__EXPORT__) 854887Schin #undef __MANGLE__ 864887Schin #define __MANGLE__ __LINKAGE__ __EXPORT__ 874887Schin #endif 884887Schin 894887Schin extern __MANGLE__ Mime_t* mimeopen __PROTO__((Mimedisc_t*)); 904887Schin extern __MANGLE__ int mimeload __PROTO__((Mime_t*, const char*, unsigned long)); 914887Schin extern __MANGLE__ int mimelist __PROTO__((Mime_t*, Sfio_t*, const char*)); 924887Schin extern __MANGLE__ int mimeclose __PROTO__((Mime_t*)); 934887Schin extern __MANGLE__ int mimeset __PROTO__((Mime_t*, char*, unsigned long)); 944887Schin extern __MANGLE__ char* mimetype __PROTO__((Mime_t*, Sfio_t*, const char*, struct stat*)); 954887Schin extern __MANGLE__ char* mimeview __PROTO__((Mime_t*, const char*, const char*, const char*, const char*)); 964887Schin extern __MANGLE__ int mimehead __PROTO__((Mime_t*, __V_*, size_t, size_t, char*)); 974887Schin extern __MANGLE__ int mimecmp __PROTO__((const char*, const char*, char**)); 984887Schin 994887Schin #undef __MANGLE__ 1004887Schin #define __MANGLE__ __LINKAGE__ 1014887Schin 1024887Schin #endif 103