Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
att
GitHub Repository: att/ast
Path: blob/master/src/lib/libast/include/mime.h
1810 views
1
/***********************************************************************
2
* *
3
* This software is part of the ast package *
4
* Copyright (c) 1985-2011 AT&T Intellectual Property *
5
* and is licensed under the *
6
* Eclipse Public License, Version 1.0 *
7
* by AT&T Intellectual Property *
8
* *
9
* A copy of the License is available at *
10
* http://www.eclipse.org/org/documents/epl-v10.html *
11
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
12
* *
13
* Information and Software Systems Research *
14
* AT&T Research *
15
* Florham Park NJ *
16
* *
17
* Glenn Fowler <[email protected]> *
18
* David Korn <[email protected]> *
19
* Phong Vo <[email protected]> *
20
* *
21
***********************************************************************/
22
#pragma prototyped
23
24
/*
25
* mime/mailcap interface
26
*/
27
28
#ifndef _MIMETYPE_H
29
#define _MIMETYPE_H 1
30
31
#include <sfio.h>
32
#include <ls.h>
33
34
#define MIME_VERSION 19970717L
35
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
39
40
#define MIME_FILES_ENV "MAILCAP"
41
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 */
46
47
#define MIME_USER (1L<<16) /* first user flag bit */
48
49
struct Mime_s;
50
typedef struct Mime_s Mime_t;
51
52
struct Mimedisc_s;
53
typedef struct Mimedisc_s Mimedisc_t;
54
55
typedef int (*Mimevalue_f)(Mime_t*, void*, char*, size_t, Mimedisc_t*);
56
57
struct Mimedisc_s
58
{
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 */
63
};
64
65
struct Mime_s
66
{
67
const char* id; /* library id string */
68
69
#ifdef _MIME_PRIVATE_
70
_MIME_PRIVATE_
71
#endif
72
73
};
74
75
#if _BLD_ast && defined(__EXPORT__)
76
#define extern __EXPORT__
77
#endif
78
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**);
88
89
#undef extern
90
91
#endif
92
93