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