dmake: do not set MAKEFLAGS=k
[unleashed/tickless.git] / usr / src / lib / libast / common / include / mime.h
blob8989a366d90b158ddb4897e64b82f64264cda1b7
1 /***********************************************************************
2 * *
3 * This software is part of the ast package *
4 * Copyright (c) 1985-2010 AT&T Intellectual Property *
5 * and is licensed under the *
6 * Common Public License, Version 1.0 *
7 * by AT&T Intellectual Property *
8 * *
9 * A copy of the License is available at *
10 * http://www.opensource.org/licenses/cpl1.0.txt *
11 * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
12 * *
13 * Information and Software Systems Research *
14 * AT&T Research *
15 * Florham Park NJ *
16 * *
17 * Glenn Fowler <gsf@research.att.com> *
18 * David Korn <dgk@research.att.com> *
19 * Phong Vo <kpv@research.att.com> *
20 * *
21 ***********************************************************************/
22 #pragma prototyped
25 * mime/mailcap interface
28 #ifndef _MIMETYPE_H
29 #define _MIMETYPE_H 1
31 #include <sfio.h>
32 #include <ls.h>
34 #define MIME_VERSION 19970717L
36 #ifndef MIME_FILES
37 #define MIME_FILES "~/.mailcap:/usr/local/etc/mailcap:/usr/etc/mailcap:/etc/mailcap:/etc/mail/mailcap:/usr/public/lib/mailcap"
38 #endif
40 #define MIME_FILES_ENV "MAILCAP"
42 #define MIME_LIST (1<<0) /* mimeload arg is : list */
43 #define MIME_NOMAGIC (1<<1) /* no magic for mimetype() */
44 #define MIME_PIPE (1<<2) /* mimeview() io is piped */
45 #define MIME_REPLACE (1<<3) /* replace existing definition */
47 #define MIME_USER (1L<<16) /* first user flag bit */
49 struct Mime_s;
50 typedef struct Mime_s Mime_t;
52 struct Mimedisc_s;
53 typedef struct Mimedisc_s Mimedisc_t;
55 typedef int (*Mimevalue_f)(Mime_t*, void*, char*, size_t, Mimedisc_t*);
57 struct Mimedisc_s
59 unsigned long version; /* interface version */
60 unsigned long flags; /* MIME_* flags */
61 Error_f errorf; /* error function */
62 Mimevalue_f valuef; /* value extraction function */
65 struct Mime_s
67 const char* id; /* library id string */
69 #ifdef _MIME_PRIVATE_
70 _MIME_PRIVATE_
71 #endif
75 #if _BLD_ast && defined(__EXPORT__)
76 #define extern __EXPORT__
77 #endif
79 extern Mime_t* mimeopen(Mimedisc_t*);
80 extern int mimeload(Mime_t*, const char*, unsigned long);
81 extern int mimelist(Mime_t*, Sfio_t*, const char*);
82 extern int mimeclose(Mime_t*);
83 extern int mimeset(Mime_t*, char*, unsigned long);
84 extern char* mimetype(Mime_t*, Sfio_t*, const char*, struct stat*);
85 extern char* mimeview(Mime_t*, const char*, const char*, const char*, const char*);
86 extern int mimehead(Mime_t*, void*, size_t, size_t, char*);
87 extern int mimecmp(const char*, const char*, char**);
89 #undef extern
91 #endif