1da2e3ebdSchin 2da2e3ebdSchin /* : : generated by proto : : */ 3da2e3ebdSchin /*********************************************************************** 4da2e3ebdSchin * * 5da2e3ebdSchin * This software is part of the ast package * 6*3e14f97fSRoger A. Faulkner * Copyright (c) 1985-2010 AT&T Intellectual Property * 7da2e3ebdSchin * and is licensed under the * 8da2e3ebdSchin * Common Public License, Version 1.0 * 97c2fbfb3SApril Chin * by AT&T Intellectual Property * 10da2e3ebdSchin * * 11da2e3ebdSchin * A copy of the License is available at * 12da2e3ebdSchin * http://www.opensource.org/licenses/cpl1.0.txt * 13da2e3ebdSchin * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 14da2e3ebdSchin * * 15da2e3ebdSchin * Information and Software Systems Research * 16da2e3ebdSchin * AT&T Research * 17da2e3ebdSchin * Florham Park NJ * 18da2e3ebdSchin * * 19da2e3ebdSchin * Glenn Fowler <gsf@research.att.com> * 20da2e3ebdSchin * David Korn <dgk@research.att.com> * 21da2e3ebdSchin * Phong Vo <kpv@research.att.com> * 22da2e3ebdSchin * * 23da2e3ebdSchin ***********************************************************************/ 24da2e3ebdSchin 25da2e3ebdSchin 26da2e3ebdSchin /* 27da2e3ebdSchin * mime/mailcap interface 28da2e3ebdSchin */ 29da2e3ebdSchin 30da2e3ebdSchin #ifndef _MIMETYPE_H 31da2e3ebdSchin #if !defined(__PROTO__) 32da2e3ebdSchin #include <prototyped.h> 33da2e3ebdSchin #endif 34da2e3ebdSchin #if !defined(__LINKAGE__) 35da2e3ebdSchin #define __LINKAGE__ /* 2004-08-11 transition */ 36da2e3ebdSchin #endif 37da2e3ebdSchin 38da2e3ebdSchin #define _MIMETYPE_H 1 39da2e3ebdSchin 40da2e3ebdSchin #include <sfio.h> 41da2e3ebdSchin #include <ls.h> 42da2e3ebdSchin 43da2e3ebdSchin #define MIME_VERSION 19970717L 44da2e3ebdSchin 45da2e3ebdSchin #ifndef MIME_FILES 46da2e3ebdSchin #define MIME_FILES "~/.mailcap:/usr/local/etc/mailcap:/usr/etc/mailcap:/etc/mailcap:/etc/mail/mailcap:/usr/public/lib/mailcap" 47da2e3ebdSchin #endif 48da2e3ebdSchin 49da2e3ebdSchin #define MIME_FILES_ENV "MAILCAP" 50da2e3ebdSchin 51da2e3ebdSchin #define MIME_LIST (1<<0) /* mimeload arg is : list */ 52da2e3ebdSchin #define MIME_NOMAGIC (1<<1) /* no magic for mimetype() */ 53da2e3ebdSchin #define MIME_PIPE (1<<2) /* mimeview() io is piped */ 54da2e3ebdSchin #define MIME_REPLACE (1<<3) /* replace existing definition */ 55da2e3ebdSchin 56da2e3ebdSchin #define MIME_USER (1L<<16) /* first user flag bit */ 57da2e3ebdSchin 58da2e3ebdSchin struct Mime_s; 59da2e3ebdSchin typedef struct Mime_s Mime_t; 60da2e3ebdSchin 61da2e3ebdSchin struct Mimedisc_s; 62da2e3ebdSchin typedef struct Mimedisc_s Mimedisc_t; 63da2e3ebdSchin 64da2e3ebdSchin typedef int (*Mimevalue_f) __PROTO__((Mime_t*, __V_*, char*, size_t, Mimedisc_t*)); 65da2e3ebdSchin 66da2e3ebdSchin struct Mimedisc_s 67da2e3ebdSchin { 68da2e3ebdSchin unsigned long version; /* interface version */ 69da2e3ebdSchin unsigned long flags; /* MIME_* flags */ 70da2e3ebdSchin Error_f errorf; /* error function */ 71da2e3ebdSchin Mimevalue_f valuef; /* value extraction function */ 72da2e3ebdSchin }; 73da2e3ebdSchin 74da2e3ebdSchin struct Mime_s 75da2e3ebdSchin { 76da2e3ebdSchin const char* id; /* library id string */ 77da2e3ebdSchin 78da2e3ebdSchin #ifdef _MIME_PRIVATE_ 79da2e3ebdSchin _MIME_PRIVATE_ 80da2e3ebdSchin #endif 81da2e3ebdSchin 82da2e3ebdSchin }; 83da2e3ebdSchin 84da2e3ebdSchin #if _BLD_ast && defined(__EXPORT__) 85da2e3ebdSchin #undef __MANGLE__ 86da2e3ebdSchin #define __MANGLE__ __LINKAGE__ __EXPORT__ 87da2e3ebdSchin #endif 88da2e3ebdSchin 89da2e3ebdSchin extern __MANGLE__ Mime_t* mimeopen __PROTO__((Mimedisc_t*)); 90da2e3ebdSchin extern __MANGLE__ int mimeload __PROTO__((Mime_t*, const char*, unsigned long)); 91da2e3ebdSchin extern __MANGLE__ int mimelist __PROTO__((Mime_t*, Sfio_t*, const char*)); 92da2e3ebdSchin extern __MANGLE__ int mimeclose __PROTO__((Mime_t*)); 93da2e3ebdSchin extern __MANGLE__ int mimeset __PROTO__((Mime_t*, char*, unsigned long)); 94da2e3ebdSchin extern __MANGLE__ char* mimetype __PROTO__((Mime_t*, Sfio_t*, const char*, struct stat*)); 95da2e3ebdSchin extern __MANGLE__ char* mimeview __PROTO__((Mime_t*, const char*, const char*, const char*, const char*)); 96da2e3ebdSchin extern __MANGLE__ int mimehead __PROTO__((Mime_t*, __V_*, size_t, size_t, char*)); 97da2e3ebdSchin extern __MANGLE__ int mimecmp __PROTO__((const char*, const char*, char**)); 98da2e3ebdSchin 99da2e3ebdSchin #undef __MANGLE__ 100da2e3ebdSchin #define __MANGLE__ __LINKAGE__ 101da2e3ebdSchin 102da2e3ebdSchin #endif 103