tnef 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ext/tnef/AUTHORS +7 -0
- data/ext/tnef/BUGS.in +5 -0
- data/ext/tnef/COPYING +340 -0
- data/ext/tnef/ChangeLog +1550 -0
- data/ext/tnef/INSTALL +234 -0
- data/ext/tnef/Makefile.am +7 -0
- data/ext/tnef/Makefile.in +699 -0
- data/ext/tnef/NEWS +177 -0
- data/ext/tnef/README +39 -0
- data/ext/tnef/THANKS +1 -0
- data/ext/tnef/TODO +7 -0
- data/ext/tnef/acinclude.m4 +47 -0
- data/ext/tnef/aclocal.m4 +1012 -0
- data/ext/tnef/configure +6815 -0
- data/ext/tnef/configure.in +67 -0
- data/ext/tnef/depcomp +584 -0
- data/ext/tnef/doc/FAQ +25 -0
- data/ext/tnef/doc/Makefile.am +6 -0
- data/ext/tnef/doc/Makefile.in +623 -0
- data/ext/tnef/doc/file-format.tex +139 -0
- data/ext/tnef/doc/tnef.1.in +183 -0
- data/ext/tnef/doc/www/Makefile.am +14 -0
- data/ext/tnef/doc/www/Makefile.in +542 -0
- data/ext/tnef/doc/www/cgi-bin/Makefile.am +14 -0
- data/ext/tnef/doc/www/cgi-bin/Makefile.in +340 -0
- data/ext/tnef/doc/www/htdocs/Makefile.am +14 -0
- data/ext/tnef/doc/www/htdocs/Makefile.in +340 -0
- data/ext/tnef/extconf.rb +3 -0
- data/ext/tnef/install-sh +507 -0
- data/ext/tnef/missing +367 -0
- data/ext/tnef/mkinstalldirs +161 -0
- data/ext/tnef/src/Makefile.am +48 -0
- data/ext/tnef/src/Makefile.in +700 -0
- data/ext/tnef/src/alloc.c +107 -0
- data/ext/tnef/src/alloc.h +54 -0
- data/ext/tnef/src/attr.c +270 -0
- data/ext/tnef/src/attr.h +74 -0
- data/ext/tnef/src/common.h +101 -0
- data/ext/tnef/src/config.h.in +111 -0
- data/ext/tnef/src/date.c +66 -0
- data/ext/tnef/src/date.h +43 -0
- data/ext/tnef/src/debug.c +45 -0
- data/ext/tnef/src/debug.h +32 -0
- data/ext/tnef/src/file.c +259 -0
- data/ext/tnef/src/file.h +48 -0
- data/ext/tnef/src/main.c +386 -0
- data/ext/tnef/src/mapi-names.data +430 -0
- data/ext/tnef/src/mapi-types.data +19 -0
- data/ext/tnef/src/mapi_attr.c +419 -0
- data/ext/tnef/src/mapi_attr.h +78 -0
- data/ext/tnef/src/mkdata.awk +100 -0
- data/ext/tnef/src/options.c +32 -0
- data/ext/tnef/src/options.h +67 -0
- data/ext/tnef/src/path.c +397 -0
- data/ext/tnef/src/path.h +34 -0
- data/ext/tnef/src/replace/Makefile.am +8 -0
- data/ext/tnef/src/replace/Makefile.in +435 -0
- data/ext/tnef/src/replace/basename.c +45 -0
- data/ext/tnef/src/replace/dummy.c +7 -0
- data/ext/tnef/src/replace/getopt_long.c +940 -0
- data/ext/tnef/src/replace/getopt_long.h +141 -0
- data/ext/tnef/src/replace/malloc.c +41 -0
- data/ext/tnef/src/replace/strdup.c +51 -0
- data/ext/tnef/src/rtf.c +362 -0
- data/ext/tnef/src/rtf.h +36 -0
- data/ext/tnef/src/tnef-names.data +34 -0
- data/ext/tnef/src/tnef-types.data +12 -0
- data/ext/tnef/src/tnef.c +396 -0
- data/ext/tnef/src/tnef.h +45 -0
- data/ext/tnef/src/util.c +112 -0
- data/ext/tnef/src/util.h +42 -0
- data/ext/tnef/src/write.c +136 -0
- data/ext/tnef/src/write.h +25 -0
- data/ext/tnef/src/xstrdup.c +41 -0
- data/ext/tnef/tests/Makefile.am +4 -0
- data/ext/tnef/tests/Makefile.in +530 -0
- data/ext/tnef/tests/cmdline/AUTHORS +8 -0
- data/ext/tnef/tests/cmdline/AUTHORS.baseline +8 -0
- data/ext/tnef/tests/cmdline/Makefile.am +33 -0
- data/ext/tnef/tests/cmdline/Makefile.in +455 -0
- data/ext/tnef/tests/cmdline/basic.baseline +4 -0
- data/ext/tnef/tests/cmdline/basic.test +39 -0
- data/ext/tnef/tests/cmdline/body-test.html.baseline +95 -0
- data/ext/tnef/tests/cmdline/body.baseline +929 -0
- data/ext/tnef/tests/cmdline/body.test +55 -0
- data/ext/tnef/tests/cmdline/debug.baseline +155 -0
- data/ext/tnef/tests/cmdline/debug.test +14 -0
- data/ext/tnef/tests/cmdline/directory.baseline +3 -0
- data/ext/tnef/tests/cmdline/directory.test +35 -0
- data/ext/tnef/tests/cmdline/help.baseline +63 -0
- data/ext/tnef/tests/cmdline/help.test +12 -0
- data/ext/tnef/tests/cmdline/interactive.test +5 -0
- data/ext/tnef/tests/cmdline/list.baseline +5 -0
- data/ext/tnef/tests/cmdline/list.test +21 -0
- data/ext/tnef/tests/cmdline/maxsize.baseline +828 -0
- data/ext/tnef/tests/cmdline/maxsize.test +43 -0
- data/ext/tnef/tests/cmdline/message.html.baseline +95 -0
- data/ext/tnef/tests/cmdline/mime-types.baseline +3 -0
- data/ext/tnef/tests/cmdline/mime-types.test +11 -0
- data/ext/tnef/tests/cmdline/overwrite.baseline +8 -0
- data/ext/tnef/tests/cmdline/overwrite.test +40 -0
- data/ext/tnef/tests/cmdline/rtf-test.rtf.baseline +0 -0
- data/ext/tnef/tests/cmdline/stdin.baseline +2 -0
- data/ext/tnef/tests/cmdline/stdin.test +18 -0
- data/ext/tnef/tests/cmdline/test.tnef +0 -0
- data/ext/tnef/tests/cmdline/triples-test-2.rtf.baseline +0 -0
- data/ext/tnef/tests/cmdline/triples-test-2.txt.baseline +0 -0
- data/ext/tnef/tests/cmdline/triples-test.txt.baseline +0 -0
- data/ext/tnef/tests/cmdline/use-path.baseline +0 -0
- data/ext/tnef/tests/cmdline/use-path.test +5 -0
- data/ext/tnef/tests/cmdline/verbose.baseline +5 -0
- data/ext/tnef/tests/cmdline/verbose.test +19 -0
- data/ext/tnef/tests/cmdline/version.baseline +17 -0
- data/ext/tnef/tests/cmdline/version.test +14 -0
- data/ext/tnef/tests/files/MAPI_ATTACH_DATA_OBJ.test +9 -0
- data/ext/tnef/tests/files/MAPI_OBJECT.test +9 -0
- data/ext/tnef/tests/files/Makefile.am +16 -0
- data/ext/tnef/tests/files/Makefile.in +636 -0
- data/ext/tnef/tests/files/baselines/AUTHORS.baseline +8 -0
- data/ext/tnef/tests/files/baselines/AUTOEXEC.BAT.baseline +0 -0
- data/ext/tnef/tests/files/baselines/CONFIG.SYS.baseline +0 -0
- data/ext/tnef/tests/files/baselines/MAPI_ATTACH_DATA_OBJ-body.rtf.baseline +0 -0
- data/ext/tnef/tests/files/baselines/MAPI_ATTACH_DATA_OBJ.baseline +229 -0
- data/ext/tnef/tests/files/baselines/MAPI_OBJECT-body.rtf.baseline +0 -0
- data/ext/tnef/tests/files/baselines/MAPI_OBJECT.baseline +153 -0
- data/ext/tnef/tests/files/baselines/Makefile.am +35 -0
- data/ext/tnef/tests/files/baselines/Makefile.in +361 -0
- data/ext/tnef/tests/files/baselines/README.baseline +31 -0
- data/ext/tnef/tests/files/baselines/TechlibDEC99-JAN00.doc.baseline +0 -0
- data/ext/tnef/tests/files/baselines/TechlibDEC99.doc.baseline +0 -0
- data/ext/tnef/tests/files/baselines/TechlibNOV99.doc.baseline +0 -0
- data/ext/tnef/tests/files/baselines/Untitled_Attachment.baseline +0 -0
- data/ext/tnef/tests/files/baselines/VIA_Nytt_1402.doc.baseline +0 -0
- data/ext/tnef/tests/files/baselines/VIA_Nytt_1402.pdf.baseline +0 -0
- data/ext/tnef/tests/files/baselines/VIA_Nytt_14021.htm.baseline +1914 -0
- data/ext/tnef/tests/files/baselines/body-body.html.baseline +95 -0
- data/ext/tnef/tests/files/baselines/body.baseline +124 -0
- data/ext/tnef/tests/files/baselines/boot.ini.baseline +6 -0
- data/ext/tnef/tests/files/baselines/data-before-name-body.rtf.baseline +0 -0
- data/ext/tnef/tests/files/baselines/data-before-name.baseline +213 -0
- data/ext/tnef/tests/files/baselines/garbage-at-end.baseline +73 -0
- data/ext/tnef/tests/files/baselines/generpts.src.baseline +1691 -0
- data/ext/tnef/tests/files/baselines/long-filename-body.rtf.baseline +26 -0
- data/ext/tnef/tests/files/baselines/long-filename.baseline +218 -0
- data/ext/tnef/tests/files/baselines/message.rtf.baseline +0 -0
- data/ext/tnef/tests/files/baselines/missing-filenames-body.rtf.baseline +20 -0
- data/ext/tnef/tests/files/baselines/missing-filenames.baseline +252 -0
- data/ext/tnef/tests/files/baselines/multi-name-property.baseline +243 -0
- data/ext/tnef/tests/files/baselines/one-file.baseline +155 -0
- data/ext/tnef/tests/files/baselines/rtf-body.rtf.baseline +0 -0
- data/ext/tnef/tests/files/baselines/rtf.baseline +167 -0
- data/ext/tnef/tests/files/baselines/triples-body.rtf.baseline +0 -0
- data/ext/tnef/tests/files/baselines/triples.baseline +254 -0
- data/ext/tnef/tests/files/baselines/two-files.baseline +186 -0
- data/ext/tnef/tests/files/body.test +9 -0
- data/ext/tnef/tests/files/data-before-name.test +9 -0
- data/ext/tnef/tests/files/datafiles/MAPI_ATTACH_DATA_OBJ.list +4 -0
- data/ext/tnef/tests/files/datafiles/MAPI_ATTACH_DATA_OBJ.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/MAPI_OBJECT.list +2 -0
- data/ext/tnef/tests/files/datafiles/MAPI_OBJECT.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/Makefile.am +27 -0
- data/ext/tnef/tests/files/datafiles/Makefile.in +351 -0
- data/ext/tnef/tests/files/datafiles/body.list +1 -0
- data/ext/tnef/tests/files/datafiles/body.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/data-before-name.list +4 -0
- data/ext/tnef/tests/files/datafiles/data-before-name.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/garbage-at-end.list +0 -0
- data/ext/tnef/tests/files/datafiles/garbage-at-end.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/long-filename.list +1 -0
- data/ext/tnef/tests/files/datafiles/long-filename.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/missing-filenames.list +1 -0
- data/ext/tnef/tests/files/datafiles/missing-filenames.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/multi-name-property.list +0 -0
- data/ext/tnef/tests/files/datafiles/multi-name-property.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/one-file.list +1 -0
- data/ext/tnef/tests/files/datafiles/one-file.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/rtf.list +1 -0
- data/ext/tnef/tests/files/datafiles/rtf.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/triples.list +1 -0
- data/ext/tnef/tests/files/datafiles/triples.tnef +0 -0
- data/ext/tnef/tests/files/datafiles/two-files.list +2 -0
- data/ext/tnef/tests/files/datafiles/two-files.tnef +0 -0
- data/ext/tnef/tests/files/file-util.sh +38 -0
- data/ext/tnef/tests/files/garbage-at-end.test +9 -0
- data/ext/tnef/tests/files/long-filename.test +9 -0
- data/ext/tnef/tests/files/missing-filenames.test +9 -0
- data/ext/tnef/tests/files/multi-name-property.test +9 -0
- data/ext/tnef/tests/files/one-file.test +9 -0
- data/ext/tnef/tests/files/rtf.test +9 -0
- data/ext/tnef/tests/files/triples.test +9 -0
- data/ext/tnef/tests/files/two-files.test +9 -0
- data/ext/tnef/tests/util.sh +32 -0
- data/ext/tnef/tnef.spec.in +44 -0
- data/lib/tnef.rb +30 -0
- data/lib/tnef/executable.rb +27 -0
- data/lib/tnef/version.rb +3 -0
- metadata +243 -0
data/ext/tnef/src/tnef.h
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* tnef.h -- extract files from Microsoft TNEF format.
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 1999-2006 by Mark Simpson <damned@theworld.com>
|
|
5
|
+
*
|
|
6
|
+
* This program is free software; you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU General Public License as published by
|
|
8
|
+
* the Free Software Foundation; either version 2, or (at your option)
|
|
9
|
+
* any later version.
|
|
10
|
+
*
|
|
11
|
+
* This program is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU General Public License
|
|
17
|
+
* along with this program; if not, you can either send email to this
|
|
18
|
+
* program's maintainer or write to: The Free Software Foundation,
|
|
19
|
+
* Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA.
|
|
20
|
+
*
|
|
21
|
+
* Commentary:
|
|
22
|
+
* Various defined values for decoding a TNEF file.
|
|
23
|
+
*/
|
|
24
|
+
#ifndef TNEF_H
|
|
25
|
+
#define TNEF_H
|
|
26
|
+
|
|
27
|
+
#if HAVE_CONFIG_H
|
|
28
|
+
# include "config.h"
|
|
29
|
+
#endif /* HAVE_CONFIG_H */
|
|
30
|
+
|
|
31
|
+
#include "common.h"
|
|
32
|
+
|
|
33
|
+
/* TNEF signature. Equivalent to the magic cookie for a TNEF file. */
|
|
34
|
+
#define TNEF_SIGNATURE 0x223e9f78
|
|
35
|
+
|
|
36
|
+
/* Main entrance point to tnef processing */
|
|
37
|
+
extern int
|
|
38
|
+
parse_file(FILE *input, char * output_dir,
|
|
39
|
+
char *body_file, char *body_pref,
|
|
40
|
+
int flags);
|
|
41
|
+
|
|
42
|
+
#endif /* !TNEF_H */
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
data/ext/tnef/src/util.c
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* util.c -- Utility functions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C)1999-2006 Mark Simpson <damned@theworld.com>
|
|
5
|
+
*
|
|
6
|
+
* This program is free software; you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU General Public License as published by
|
|
8
|
+
* the Free Software Foundation; either version 2, or (at your option)
|
|
9
|
+
* any later version.
|
|
10
|
+
*
|
|
11
|
+
* This program is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU General Public License
|
|
17
|
+
* along with this program; if not, you can either send email to this
|
|
18
|
+
* program's maintainer or write to: The Free Software Foundation,
|
|
19
|
+
* Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA.
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
#ifdef HAVE_CONFIG_H
|
|
23
|
+
# include "config.h"
|
|
24
|
+
#endif /* HAVE_CONFIG_H */
|
|
25
|
+
|
|
26
|
+
#include "common.h"
|
|
27
|
+
|
|
28
|
+
#include "util.h"
|
|
29
|
+
#include "options.h"
|
|
30
|
+
|
|
31
|
+
/* Needed to transform char buffers into little endian numbers */
|
|
32
|
+
uint32 GETINT32(unsigned char *p)
|
|
33
|
+
{
|
|
34
|
+
return (uint32)((uint8)(p)[0] \
|
|
35
|
+
+((uint8)(p)[1]<<8) \
|
|
36
|
+
+((uint8)(p)[2]<<16) \
|
|
37
|
+
+((uint8)(p)[3]<<24));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
uint16 GETINT16 (unsigned char* p)
|
|
41
|
+
{
|
|
42
|
+
return (uint16)((uint8)(p)[0]+((uint8)(p)[1]<<8));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
uint8 GETINT8 (unsigned char *p)
|
|
46
|
+
{
|
|
47
|
+
return (uint8)(p)[0];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
unsigned char*
|
|
51
|
+
getbuf (FILE *fp, unsigned char buf[], size_t n)
|
|
52
|
+
{
|
|
53
|
+
if (fread (buf, 1, n, fp) != n)
|
|
54
|
+
{
|
|
55
|
+
perror ("Unexpected end of input");
|
|
56
|
+
exit (1);
|
|
57
|
+
}
|
|
58
|
+
return buf;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
uint32
|
|
62
|
+
geti32 (FILE *fp)
|
|
63
|
+
{
|
|
64
|
+
unsigned char buf[4];
|
|
65
|
+
return (uint32)GETINT32(getbuf(fp, buf, 4));
|
|
66
|
+
}
|
|
67
|
+
uint16
|
|
68
|
+
geti16 (FILE *fp)
|
|
69
|
+
{
|
|
70
|
+
unsigned char buf[2];
|
|
71
|
+
return (uint16)GETINT16(getbuf(fp, buf, 2));
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
uint8
|
|
75
|
+
geti8(FILE *fp)
|
|
76
|
+
{
|
|
77
|
+
unsigned char buf[1];
|
|
78
|
+
return (uint8)GETINT8(getbuf(fp, buf, 1));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
unsigned char*
|
|
82
|
+
unicode_to_utf8 (size_t len, unsigned char* buf)
|
|
83
|
+
{
|
|
84
|
+
int i = 0;
|
|
85
|
+
int j = 0;
|
|
86
|
+
unsigned char *utf8 = malloc (3 * len/2 + 1); /* won't get any longer than this */
|
|
87
|
+
|
|
88
|
+
for (i = 0; i < len - 1; i += 2)
|
|
89
|
+
{
|
|
90
|
+
uint32 c = GETINT16(buf + i);
|
|
91
|
+
if (c <= 0x007f)
|
|
92
|
+
{
|
|
93
|
+
utf8[j++] = 0x00 | ((c & 0x007f) >> 0);
|
|
94
|
+
}
|
|
95
|
+
else if (c < 0x07ff)
|
|
96
|
+
{
|
|
97
|
+
utf8[j++] = 0xc0 | ((c & 0x07c0) >> 6);
|
|
98
|
+
utf8[j++] = 0x80 | ((c & 0x003f) >> 0);
|
|
99
|
+
}
|
|
100
|
+
else
|
|
101
|
+
{
|
|
102
|
+
utf8[j++] = 0xe0 | ((c & 0xf000) >> 12);
|
|
103
|
+
utf8[j++] = 0x80 | ((c & 0x0fc0) >> 6);
|
|
104
|
+
utf8[j++] = 0x80 | ((c & 0x003f) >> 0);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
utf8[j] = '\0';
|
|
109
|
+
|
|
110
|
+
return utf8;
|
|
111
|
+
}
|
|
112
|
+
|
data/ext/tnef/src/util.h
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* util.h -- Utility functions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C)1999-2006 Mark Simpson <damned@theworld.com>
|
|
5
|
+
*
|
|
6
|
+
* This program is free software; you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU General Public License as published by
|
|
8
|
+
* the Free Software Foundation; either version 2, or (at your option)
|
|
9
|
+
* any later version.
|
|
10
|
+
*
|
|
11
|
+
* This program is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU General Public License
|
|
17
|
+
* along with this program; if not, you can either send email to this
|
|
18
|
+
* program's maintainer or write to: The Free Software Foundation,
|
|
19
|
+
* Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA.
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
#ifndef UTIL_H
|
|
23
|
+
#define UTIL_H
|
|
24
|
+
|
|
25
|
+
#if HAVE_CONFIG_H
|
|
26
|
+
# include "config.h"
|
|
27
|
+
#endif /* HAVE_CONFIG_H */
|
|
28
|
+
|
|
29
|
+
#include "common.h"
|
|
30
|
+
|
|
31
|
+
extern uint32 GETINT32(unsigned char*p);
|
|
32
|
+
extern uint16 GETINT16(unsigned char*p);
|
|
33
|
+
extern uint8 GETINT8(unsigned char*p);
|
|
34
|
+
|
|
35
|
+
extern unsigned char* getbuf (FILE *fp, unsigned char buf[], size_t n);
|
|
36
|
+
extern uint32 geti32(FILE *fp);
|
|
37
|
+
extern uint16 geti16(FILE *fp);
|
|
38
|
+
extern uint8 geti8(FILE *fp);
|
|
39
|
+
|
|
40
|
+
extern unsigned char* unicode_to_utf8 (size_t len, unsigned char*buf);
|
|
41
|
+
|
|
42
|
+
#endif /* UTIL_H */
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
#if HAVE_CONFIG_H
|
|
2
|
+
# include "config.h"
|
|
3
|
+
#endif
|
|
4
|
+
|
|
5
|
+
#include "common.h"
|
|
6
|
+
#include "attr.h"
|
|
7
|
+
#include "mapi_attr.h"
|
|
8
|
+
|
|
9
|
+
/* Format Strings */
|
|
10
|
+
#define UINT8_FMT "%u"
|
|
11
|
+
#define INT8_FMT "%d"
|
|
12
|
+
#define UINT16_FMT "%hu"
|
|
13
|
+
#define INT16_FMT "%hd"
|
|
14
|
+
#if (SIZEOF_INT == 2)
|
|
15
|
+
#define UINT32_FMT "%lu"
|
|
16
|
+
#define INT32_FMT "%ld"
|
|
17
|
+
#else
|
|
18
|
+
#define UINT32_FMT "%u"
|
|
19
|
+
#define INT32_FMT "%d"
|
|
20
|
+
#endif /* (SIZEOF_INT == 2) */
|
|
21
|
+
|
|
22
|
+
void
|
|
23
|
+
write_uint8 (FILE* fp, uint8 b)
|
|
24
|
+
{
|
|
25
|
+
fprintf (fp, UINT8_FMT, b);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
void
|
|
29
|
+
write_uint16 (FILE* fp, uint16 s)
|
|
30
|
+
{
|
|
31
|
+
fprintf (fp, UINT16_FMT, s);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
void
|
|
35
|
+
write_uint32 (FILE* fp, uint32 l)
|
|
36
|
+
{
|
|
37
|
+
fprintf (fp, UINT32_FMT, l);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
void
|
|
41
|
+
write_int8 (FILE* fp, int8 b)
|
|
42
|
+
{
|
|
43
|
+
fprintf (fp, INT8_FMT, b);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
void
|
|
47
|
+
write_int16 (FILE* fp, int16 s)
|
|
48
|
+
{
|
|
49
|
+
fprintf (fp, INT16_FMT, s);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
void
|
|
53
|
+
write_int32 (FILE* fp, int32 l)
|
|
54
|
+
{
|
|
55
|
+
fprintf (fp, INT32_FMT, l);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
void
|
|
59
|
+
write_float (FILE *fp, float f)
|
|
60
|
+
{
|
|
61
|
+
fprintf (fp, "%f", f);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
void
|
|
65
|
+
write_string (FILE *fp, const char *s)
|
|
66
|
+
{
|
|
67
|
+
fprintf (fp, "'%s'", s);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
void
|
|
71
|
+
write_byte (FILE* fp, uint8 b)
|
|
72
|
+
{
|
|
73
|
+
fprintf (fp, "0x%02x", b);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
void
|
|
77
|
+
write_word (FILE *fp, uint16 w)
|
|
78
|
+
{
|
|
79
|
+
fprintf (fp, "0x%04x", w);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
void
|
|
83
|
+
write_dword (FILE *fp, uint32 dw)
|
|
84
|
+
{
|
|
85
|
+
fprintf (fp, "0x%08x", dw);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
void
|
|
89
|
+
write_date (FILE *fp, struct date* dt)
|
|
90
|
+
{
|
|
91
|
+
fprintf (fp, "%s", date_to_str (dt));
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
void
|
|
95
|
+
write_triple (FILE* fp, TRIPLE* triple)
|
|
96
|
+
{
|
|
97
|
+
fprintf (fp,
|
|
98
|
+
"{id=" UINT16_FMT
|
|
99
|
+
",chgtrp=" UINT16_FMT
|
|
100
|
+
",cch=" UINT16_FMT
|
|
101
|
+
",cb=" UINT16_FMT "} "
|
|
102
|
+
"sender_display_name='%s', "
|
|
103
|
+
"sender_address='%s'",
|
|
104
|
+
triple->trp.id,
|
|
105
|
+
triple->trp.chbgtrp,
|
|
106
|
+
triple->trp.cch,
|
|
107
|
+
triple->trp.cb,
|
|
108
|
+
triple->sender_display_name,
|
|
109
|
+
triple->sender_address);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
void
|
|
113
|
+
write_boolean (FILE *fp, uint16 b)
|
|
114
|
+
{
|
|
115
|
+
fprintf (fp, "%s", ((b == 0) ? "false" : "true"));
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
void
|
|
119
|
+
write_uint64 (FILE *fp, uint32 bytes[2])
|
|
120
|
+
{
|
|
121
|
+
fprintf (fp, "0x%08x 0x%08x", bytes[0], bytes[1]);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
void
|
|
125
|
+
write_guid (FILE *fp, GUID *guid)
|
|
126
|
+
{
|
|
127
|
+
int j;
|
|
128
|
+
fprintf (fp, "{ 0x%04x 0x%02x 0x%02x { ",
|
|
129
|
+
guid->data1, guid->data2, guid->data3);
|
|
130
|
+
for (j = 0; j < 8; j++)
|
|
131
|
+
{
|
|
132
|
+
write_byte (fp, guid->data4[j]);
|
|
133
|
+
fprintf (fp, " ");
|
|
134
|
+
}
|
|
135
|
+
fprintf (fp, "}");
|
|
136
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#ifndef WRITE_H
|
|
2
|
+
#define WRITE_H 1
|
|
3
|
+
|
|
4
|
+
#include "common.h"
|
|
5
|
+
#include "attr.h"
|
|
6
|
+
#include "mapi_attr.h"
|
|
7
|
+
|
|
8
|
+
extern void write_uint8 (FILE* fp, uint8 b);
|
|
9
|
+
extern void write_uint16 (FILE* fp, uint16 s);
|
|
10
|
+
extern void write_uint32 (FILE* fp, uint32 l);
|
|
11
|
+
extern void write_int8 (FILE* fp, int8 b);
|
|
12
|
+
extern void write_int16 (FILE* fp, int16 s);
|
|
13
|
+
extern void write_int32 (FILE* fp, int32 l);
|
|
14
|
+
extern void write_float (FILE *fp, float f);
|
|
15
|
+
extern void write_string(FILE* fp, const char *s);
|
|
16
|
+
extern void write_byte (FILE* fp, uint8 b);
|
|
17
|
+
extern void write_word (FILE *fp, uint16 w);
|
|
18
|
+
extern void write_dword (FILE *fp, uint32 dw);
|
|
19
|
+
extern void write_date (FILE *fp, struct date* dt);
|
|
20
|
+
extern void write_triple (FILE* fp, TRIPLE *triple);
|
|
21
|
+
extern void write_boolean (FILE *fp, uint16 b);
|
|
22
|
+
extern void write_uint64 (FILE *fp, uint32 bytes[2]);
|
|
23
|
+
extern void write_guid (FILE *fp, GUID *guid);
|
|
24
|
+
|
|
25
|
+
#endif /* WRITE_H */
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* xstrdup.c -- version of strdup for that handles NULL and checks size limit
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C)1999-2006 Mark Simpson <damned@theworld.com>
|
|
5
|
+
*
|
|
6
|
+
* This program is free software; you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU General Public License as published by
|
|
8
|
+
* the Free Software Foundation; either version 2, or (at your option)
|
|
9
|
+
* any later version.
|
|
10
|
+
*
|
|
11
|
+
* This program is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU General Public License
|
|
17
|
+
* along with this program; if not, you can either send email to this
|
|
18
|
+
* program's maintainer or write to: The Free Software Foundation,
|
|
19
|
+
* Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA.
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
#ifdef HAVE_CONFIG_H
|
|
23
|
+
# include "config.h"
|
|
24
|
+
#endif /* HAVE_CONFIG_H */
|
|
25
|
+
|
|
26
|
+
#include "common.h"
|
|
27
|
+
|
|
28
|
+
#include "alloc.h"
|
|
29
|
+
|
|
30
|
+
char *
|
|
31
|
+
xstrdup (const char *str)
|
|
32
|
+
{
|
|
33
|
+
char *ret = NULL;
|
|
34
|
+
if (str)
|
|
35
|
+
{
|
|
36
|
+
alloc_limit_assert ("xstrdup", strlen(str));
|
|
37
|
+
ret = strdup (str);
|
|
38
|
+
}
|
|
39
|
+
return ret;
|
|
40
|
+
}
|
|
41
|
+
|
|
@@ -0,0 +1,530 @@
|
|
|
1
|
+
# Makefile.in generated by automake 1.11.3 from Makefile.am.
|
|
2
|
+
# @configure_input@
|
|
3
|
+
|
|
4
|
+
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
|
5
|
+
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
|
|
6
|
+
# Foundation, Inc.
|
|
7
|
+
# This Makefile.in is free software; the Free Software Foundation
|
|
8
|
+
# gives unlimited permission to copy and/or distribute it,
|
|
9
|
+
# with or without modifications, as long as this notice is preserved.
|
|
10
|
+
|
|
11
|
+
# This program is distributed in the hope that it will be useful,
|
|
12
|
+
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
|
13
|
+
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
14
|
+
# PARTICULAR PURPOSE.
|
|
15
|
+
|
|
16
|
+
@SET_MAKE@
|
|
17
|
+
VPATH = @srcdir@
|
|
18
|
+
pkgdatadir = $(datadir)/@PACKAGE@
|
|
19
|
+
pkgincludedir = $(includedir)/@PACKAGE@
|
|
20
|
+
pkglibdir = $(libdir)/@PACKAGE@
|
|
21
|
+
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
|
22
|
+
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
|
23
|
+
install_sh_DATA = $(install_sh) -c -m 644
|
|
24
|
+
install_sh_PROGRAM = $(install_sh) -c
|
|
25
|
+
install_sh_SCRIPT = $(install_sh) -c
|
|
26
|
+
INSTALL_HEADER = $(INSTALL_DATA)
|
|
27
|
+
transform = $(program_transform_name)
|
|
28
|
+
NORMAL_INSTALL = :
|
|
29
|
+
PRE_INSTALL = :
|
|
30
|
+
POST_INSTALL = :
|
|
31
|
+
NORMAL_UNINSTALL = :
|
|
32
|
+
PRE_UNINSTALL = :
|
|
33
|
+
POST_UNINSTALL = :
|
|
34
|
+
subdir = tests
|
|
35
|
+
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
|
36
|
+
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
|
37
|
+
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
|
38
|
+
$(top_srcdir)/configure.in
|
|
39
|
+
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
|
40
|
+
$(ACLOCAL_M4)
|
|
41
|
+
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
|
42
|
+
CONFIG_HEADER = $(top_builddir)/src/config.h
|
|
43
|
+
CONFIG_CLEAN_FILES =
|
|
44
|
+
CONFIG_CLEAN_VPATH_FILES =
|
|
45
|
+
SOURCES =
|
|
46
|
+
DIST_SOURCES =
|
|
47
|
+
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
|
48
|
+
html-recursive info-recursive install-data-recursive \
|
|
49
|
+
install-dvi-recursive install-exec-recursive \
|
|
50
|
+
install-html-recursive install-info-recursive \
|
|
51
|
+
install-pdf-recursive install-ps-recursive install-recursive \
|
|
52
|
+
installcheck-recursive installdirs-recursive pdf-recursive \
|
|
53
|
+
ps-recursive uninstall-recursive
|
|
54
|
+
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
|
55
|
+
distclean-recursive maintainer-clean-recursive
|
|
56
|
+
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
|
|
57
|
+
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
|
|
58
|
+
distdir
|
|
59
|
+
ETAGS = etags
|
|
60
|
+
CTAGS = ctags
|
|
61
|
+
DIST_SUBDIRS = $(SUBDIRS)
|
|
62
|
+
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
|
63
|
+
am__relativize = \
|
|
64
|
+
dir0=`pwd`; \
|
|
65
|
+
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
|
|
66
|
+
sed_rest='s,^[^/]*/*,,'; \
|
|
67
|
+
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
|
|
68
|
+
sed_butlast='s,/*[^/]*$$,,'; \
|
|
69
|
+
while test -n "$$dir1"; do \
|
|
70
|
+
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
|
|
71
|
+
if test "$$first" != "."; then \
|
|
72
|
+
if test "$$first" = ".."; then \
|
|
73
|
+
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
|
|
74
|
+
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
|
|
75
|
+
else \
|
|
76
|
+
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
|
|
77
|
+
if test "$$first2" = "$$first"; then \
|
|
78
|
+
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
|
|
79
|
+
else \
|
|
80
|
+
dir2="../$$dir2"; \
|
|
81
|
+
fi; \
|
|
82
|
+
dir0="$$dir0"/"$$first"; \
|
|
83
|
+
fi; \
|
|
84
|
+
fi; \
|
|
85
|
+
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
|
86
|
+
done; \
|
|
87
|
+
reldir="$$dir2"
|
|
88
|
+
ACLOCAL = @ACLOCAL@
|
|
89
|
+
AMTAR = @AMTAR@
|
|
90
|
+
AUTOCONF = @AUTOCONF@
|
|
91
|
+
AUTOHEADER = @AUTOHEADER@
|
|
92
|
+
AUTOMAKE = @AUTOMAKE@
|
|
93
|
+
AWK = @AWK@
|
|
94
|
+
CC = @CC@
|
|
95
|
+
CCDEPMODE = @CCDEPMODE@
|
|
96
|
+
CFLAGS = @CFLAGS@
|
|
97
|
+
CPP = @CPP@
|
|
98
|
+
CPPFLAGS = @CPPFLAGS@
|
|
99
|
+
CXX = @CXX@
|
|
100
|
+
CXXDEPMODE = @CXXDEPMODE@
|
|
101
|
+
CXXFLAGS = @CXXFLAGS@
|
|
102
|
+
CYGPATH_W = @CYGPATH_W@
|
|
103
|
+
DEFS = @DEFS@
|
|
104
|
+
DEPDIR = @DEPDIR@
|
|
105
|
+
ECHO_C = @ECHO_C@
|
|
106
|
+
ECHO_N = @ECHO_N@
|
|
107
|
+
ECHO_T = @ECHO_T@
|
|
108
|
+
EGREP = @EGREP@
|
|
109
|
+
EXEEXT = @EXEEXT@
|
|
110
|
+
GREP = @GREP@
|
|
111
|
+
INSTALL = @INSTALL@
|
|
112
|
+
INSTALL_DATA = @INSTALL_DATA@
|
|
113
|
+
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
|
114
|
+
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
|
115
|
+
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
|
116
|
+
LDFLAGS = @LDFLAGS@
|
|
117
|
+
LIBOBJS = @LIBOBJS@
|
|
118
|
+
LIBS = @LIBS@
|
|
119
|
+
LN_S = @LN_S@
|
|
120
|
+
LTLIBOBJS = @LTLIBOBJS@
|
|
121
|
+
MAINT = @MAINT@
|
|
122
|
+
MAKEINFO = @MAKEINFO@
|
|
123
|
+
MKDIR_P = @MKDIR_P@
|
|
124
|
+
OBJEXT = @OBJEXT@
|
|
125
|
+
PACKAGE = @PACKAGE@
|
|
126
|
+
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
|
127
|
+
PACKAGE_NAME = @PACKAGE_NAME@
|
|
128
|
+
PACKAGE_STRING = @PACKAGE_STRING@
|
|
129
|
+
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
|
130
|
+
PACKAGE_URL = @PACKAGE_URL@
|
|
131
|
+
PACKAGE_VERSION = @PACKAGE_VERSION@
|
|
132
|
+
PATH_SEPARATOR = @PATH_SEPARATOR@
|
|
133
|
+
RANLIB = @RANLIB@
|
|
134
|
+
SET_MAKE = @SET_MAKE@
|
|
135
|
+
SHELL = @SHELL@
|
|
136
|
+
STRIP = @STRIP@
|
|
137
|
+
VERSION = @VERSION@
|
|
138
|
+
abs_builddir = @abs_builddir@
|
|
139
|
+
abs_srcdir = @abs_srcdir@
|
|
140
|
+
abs_top_builddir = @abs_top_builddir@
|
|
141
|
+
abs_top_srcdir = @abs_top_srcdir@
|
|
142
|
+
ac_ct_CC = @ac_ct_CC@
|
|
143
|
+
ac_ct_CXX = @ac_ct_CXX@
|
|
144
|
+
am__include = @am__include@
|
|
145
|
+
am__leading_dot = @am__leading_dot@
|
|
146
|
+
am__quote = @am__quote@
|
|
147
|
+
am__tar = @am__tar@
|
|
148
|
+
am__untar = @am__untar@
|
|
149
|
+
bindir = @bindir@
|
|
150
|
+
build_alias = @build_alias@
|
|
151
|
+
builddir = @builddir@
|
|
152
|
+
datadir = @datadir@
|
|
153
|
+
datarootdir = @datarootdir@
|
|
154
|
+
docdir = @docdir@
|
|
155
|
+
dvidir = @dvidir@
|
|
156
|
+
exec_prefix = @exec_prefix@
|
|
157
|
+
host_alias = @host_alias@
|
|
158
|
+
htmldir = @htmldir@
|
|
159
|
+
includedir = @includedir@
|
|
160
|
+
infodir = @infodir@
|
|
161
|
+
install_sh = @install_sh@
|
|
162
|
+
libdir = @libdir@
|
|
163
|
+
libexecdir = @libexecdir@
|
|
164
|
+
localedir = @localedir@
|
|
165
|
+
localstatedir = @localstatedir@
|
|
166
|
+
mandir = @mandir@
|
|
167
|
+
mkdir_p = @mkdir_p@
|
|
168
|
+
oldincludedir = @oldincludedir@
|
|
169
|
+
pdfdir = @pdfdir@
|
|
170
|
+
prefix = @prefix@
|
|
171
|
+
program_transform_name = @program_transform_name@
|
|
172
|
+
psdir = @psdir@
|
|
173
|
+
sbindir = @sbindir@
|
|
174
|
+
sharedstatedir = @sharedstatedir@
|
|
175
|
+
srcdir = @srcdir@
|
|
176
|
+
sysconfdir = @sysconfdir@
|
|
177
|
+
target_alias = @target_alias@
|
|
178
|
+
top_build_prefix = @top_build_prefix@
|
|
179
|
+
top_builddir = @top_builddir@
|
|
180
|
+
top_srcdir = @top_srcdir@
|
|
181
|
+
EXTRA_DIST = util.sh
|
|
182
|
+
SUBDIRS = cmdline files
|
|
183
|
+
all: all-recursive
|
|
184
|
+
|
|
185
|
+
.SUFFIXES:
|
|
186
|
+
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
|
187
|
+
@for dep in $?; do \
|
|
188
|
+
case '$(am__configure_deps)' in \
|
|
189
|
+
*$$dep*) \
|
|
190
|
+
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
|
191
|
+
&& { if test -f $@; then exit 0; else break; fi; }; \
|
|
192
|
+
exit 1;; \
|
|
193
|
+
esac; \
|
|
194
|
+
done; \
|
|
195
|
+
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \
|
|
196
|
+
$(am__cd) $(top_srcdir) && \
|
|
197
|
+
$(AUTOMAKE) --gnu tests/Makefile
|
|
198
|
+
.PRECIOUS: Makefile
|
|
199
|
+
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
|
200
|
+
@case '$?' in \
|
|
201
|
+
*config.status*) \
|
|
202
|
+
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
|
203
|
+
*) \
|
|
204
|
+
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
|
205
|
+
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
|
206
|
+
esac;
|
|
207
|
+
|
|
208
|
+
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
|
209
|
+
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
|
210
|
+
|
|
211
|
+
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
|
212
|
+
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
|
213
|
+
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
|
214
|
+
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
|
215
|
+
$(am__aclocal_m4_deps):
|
|
216
|
+
|
|
217
|
+
# This directory's subdirectories are mostly independent; you can cd
|
|
218
|
+
# into them and run `make' without going through this Makefile.
|
|
219
|
+
# To change the values of `make' variables: instead of editing Makefiles,
|
|
220
|
+
# (1) if the variable is set in `config.status', edit `config.status'
|
|
221
|
+
# (which will cause the Makefiles to be regenerated when you run `make');
|
|
222
|
+
# (2) otherwise, pass the desired values on the `make' command line.
|
|
223
|
+
$(RECURSIVE_TARGETS):
|
|
224
|
+
@fail= failcom='exit 1'; \
|
|
225
|
+
for f in x $$MAKEFLAGS; do \
|
|
226
|
+
case $$f in \
|
|
227
|
+
*=* | --[!k]*);; \
|
|
228
|
+
*k*) failcom='fail=yes';; \
|
|
229
|
+
esac; \
|
|
230
|
+
done; \
|
|
231
|
+
dot_seen=no; \
|
|
232
|
+
target=`echo $@ | sed s/-recursive//`; \
|
|
233
|
+
list='$(SUBDIRS)'; for subdir in $$list; do \
|
|
234
|
+
echo "Making $$target in $$subdir"; \
|
|
235
|
+
if test "$$subdir" = "."; then \
|
|
236
|
+
dot_seen=yes; \
|
|
237
|
+
local_target="$$target-am"; \
|
|
238
|
+
else \
|
|
239
|
+
local_target="$$target"; \
|
|
240
|
+
fi; \
|
|
241
|
+
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
|
242
|
+
|| eval $$failcom; \
|
|
243
|
+
done; \
|
|
244
|
+
if test "$$dot_seen" = "no"; then \
|
|
245
|
+
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
|
246
|
+
fi; test -z "$$fail"
|
|
247
|
+
|
|
248
|
+
$(RECURSIVE_CLEAN_TARGETS):
|
|
249
|
+
@fail= failcom='exit 1'; \
|
|
250
|
+
for f in x $$MAKEFLAGS; do \
|
|
251
|
+
case $$f in \
|
|
252
|
+
*=* | --[!k]*);; \
|
|
253
|
+
*k*) failcom='fail=yes';; \
|
|
254
|
+
esac; \
|
|
255
|
+
done; \
|
|
256
|
+
dot_seen=no; \
|
|
257
|
+
case "$@" in \
|
|
258
|
+
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
|
259
|
+
*) list='$(SUBDIRS)' ;; \
|
|
260
|
+
esac; \
|
|
261
|
+
rev=''; for subdir in $$list; do \
|
|
262
|
+
if test "$$subdir" = "."; then :; else \
|
|
263
|
+
rev="$$subdir $$rev"; \
|
|
264
|
+
fi; \
|
|
265
|
+
done; \
|
|
266
|
+
rev="$$rev ."; \
|
|
267
|
+
target=`echo $@ | sed s/-recursive//`; \
|
|
268
|
+
for subdir in $$rev; do \
|
|
269
|
+
echo "Making $$target in $$subdir"; \
|
|
270
|
+
if test "$$subdir" = "."; then \
|
|
271
|
+
local_target="$$target-am"; \
|
|
272
|
+
else \
|
|
273
|
+
local_target="$$target"; \
|
|
274
|
+
fi; \
|
|
275
|
+
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
|
276
|
+
|| eval $$failcom; \
|
|
277
|
+
done && test -z "$$fail"
|
|
278
|
+
tags-recursive:
|
|
279
|
+
list='$(SUBDIRS)'; for subdir in $$list; do \
|
|
280
|
+
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
|
281
|
+
done
|
|
282
|
+
ctags-recursive:
|
|
283
|
+
list='$(SUBDIRS)'; for subdir in $$list; do \
|
|
284
|
+
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
|
285
|
+
done
|
|
286
|
+
|
|
287
|
+
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
|
288
|
+
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|
289
|
+
unique=`for i in $$list; do \
|
|
290
|
+
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|
291
|
+
done | \
|
|
292
|
+
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|
293
|
+
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|
294
|
+
mkid -fID $$unique
|
|
295
|
+
tags: TAGS
|
|
296
|
+
|
|
297
|
+
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
|
298
|
+
$(TAGS_FILES) $(LISP)
|
|
299
|
+
set x; \
|
|
300
|
+
here=`pwd`; \
|
|
301
|
+
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
|
302
|
+
include_option=--etags-include; \
|
|
303
|
+
empty_fix=.; \
|
|
304
|
+
else \
|
|
305
|
+
include_option=--include; \
|
|
306
|
+
empty_fix=; \
|
|
307
|
+
fi; \
|
|
308
|
+
list='$(SUBDIRS)'; for subdir in $$list; do \
|
|
309
|
+
if test "$$subdir" = .; then :; else \
|
|
310
|
+
test ! -f $$subdir/TAGS || \
|
|
311
|
+
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
|
|
312
|
+
fi; \
|
|
313
|
+
done; \
|
|
314
|
+
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|
315
|
+
unique=`for i in $$list; do \
|
|
316
|
+
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|
317
|
+
done | \
|
|
318
|
+
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|
319
|
+
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|
320
|
+
shift; \
|
|
321
|
+
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
|
322
|
+
test -n "$$unique" || unique=$$empty_fix; \
|
|
323
|
+
if test $$# -gt 0; then \
|
|
324
|
+
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
|
325
|
+
"$$@" $$unique; \
|
|
326
|
+
else \
|
|
327
|
+
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
|
328
|
+
$$unique; \
|
|
329
|
+
fi; \
|
|
330
|
+
fi
|
|
331
|
+
ctags: CTAGS
|
|
332
|
+
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
|
333
|
+
$(TAGS_FILES) $(LISP)
|
|
334
|
+
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|
335
|
+
unique=`for i in $$list; do \
|
|
336
|
+
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|
337
|
+
done | \
|
|
338
|
+
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|
339
|
+
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|
340
|
+
test -z "$(CTAGS_ARGS)$$unique" \
|
|
341
|
+
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
|
342
|
+
$$unique
|
|
343
|
+
|
|
344
|
+
GTAGS:
|
|
345
|
+
here=`$(am__cd) $(top_builddir) && pwd` \
|
|
346
|
+
&& $(am__cd) $(top_srcdir) \
|
|
347
|
+
&& gtags -i $(GTAGS_ARGS) "$$here"
|
|
348
|
+
|
|
349
|
+
distclean-tags:
|
|
350
|
+
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
|
351
|
+
|
|
352
|
+
distdir: $(DISTFILES)
|
|
353
|
+
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
|
354
|
+
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
|
355
|
+
list='$(DISTFILES)'; \
|
|
356
|
+
dist_files=`for file in $$list; do echo $$file; done | \
|
|
357
|
+
sed -e "s|^$$srcdirstrip/||;t" \
|
|
358
|
+
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
|
359
|
+
case $$dist_files in \
|
|
360
|
+
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
|
361
|
+
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
|
362
|
+
sort -u` ;; \
|
|
363
|
+
esac; \
|
|
364
|
+
for file in $$dist_files; do \
|
|
365
|
+
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
|
366
|
+
if test -d $$d/$$file; then \
|
|
367
|
+
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
|
368
|
+
if test -d "$(distdir)/$$file"; then \
|
|
369
|
+
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
|
370
|
+
fi; \
|
|
371
|
+
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
|
372
|
+
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
|
373
|
+
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
|
374
|
+
fi; \
|
|
375
|
+
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
|
376
|
+
else \
|
|
377
|
+
test -f "$(distdir)/$$file" \
|
|
378
|
+
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
|
379
|
+
|| exit 1; \
|
|
380
|
+
fi; \
|
|
381
|
+
done
|
|
382
|
+
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
|
383
|
+
if test "$$subdir" = .; then :; else \
|
|
384
|
+
test -d "$(distdir)/$$subdir" \
|
|
385
|
+
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
|
386
|
+
|| exit 1; \
|
|
387
|
+
fi; \
|
|
388
|
+
done
|
|
389
|
+
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
|
390
|
+
if test "$$subdir" = .; then :; else \
|
|
391
|
+
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
|
|
392
|
+
$(am__relativize); \
|
|
393
|
+
new_distdir=$$reldir; \
|
|
394
|
+
dir1=$$subdir; dir2="$(top_distdir)"; \
|
|
395
|
+
$(am__relativize); \
|
|
396
|
+
new_top_distdir=$$reldir; \
|
|
397
|
+
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
|
|
398
|
+
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
|
|
399
|
+
($(am__cd) $$subdir && \
|
|
400
|
+
$(MAKE) $(AM_MAKEFLAGS) \
|
|
401
|
+
top_distdir="$$new_top_distdir" \
|
|
402
|
+
distdir="$$new_distdir" \
|
|
403
|
+
am__remove_distdir=: \
|
|
404
|
+
am__skip_length_check=: \
|
|
405
|
+
am__skip_mode_fix=: \
|
|
406
|
+
distdir) \
|
|
407
|
+
|| exit 1; \
|
|
408
|
+
fi; \
|
|
409
|
+
done
|
|
410
|
+
check-am: all-am
|
|
411
|
+
check: check-recursive
|
|
412
|
+
all-am: Makefile
|
|
413
|
+
installdirs: installdirs-recursive
|
|
414
|
+
installdirs-am:
|
|
415
|
+
install: install-recursive
|
|
416
|
+
install-exec: install-exec-recursive
|
|
417
|
+
install-data: install-data-recursive
|
|
418
|
+
uninstall: uninstall-recursive
|
|
419
|
+
|
|
420
|
+
install-am: all-am
|
|
421
|
+
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
|
422
|
+
|
|
423
|
+
installcheck: installcheck-recursive
|
|
424
|
+
install-strip:
|
|
425
|
+
if test -z '$(STRIP)'; then \
|
|
426
|
+
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
|
427
|
+
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
|
428
|
+
install; \
|
|
429
|
+
else \
|
|
430
|
+
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
|
431
|
+
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
|
432
|
+
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
|
433
|
+
fi
|
|
434
|
+
mostlyclean-generic:
|
|
435
|
+
|
|
436
|
+
clean-generic:
|
|
437
|
+
|
|
438
|
+
distclean-generic:
|
|
439
|
+
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
|
440
|
+
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
|
441
|
+
|
|
442
|
+
maintainer-clean-generic:
|
|
443
|
+
@echo "This command is intended for maintainers to use"
|
|
444
|
+
@echo "it deletes files that may require special tools to rebuild."
|
|
445
|
+
clean: clean-recursive
|
|
446
|
+
|
|
447
|
+
clean-am: clean-generic mostlyclean-am
|
|
448
|
+
|
|
449
|
+
distclean: distclean-recursive
|
|
450
|
+
-rm -f Makefile
|
|
451
|
+
distclean-am: clean-am distclean-generic distclean-tags
|
|
452
|
+
|
|
453
|
+
dvi: dvi-recursive
|
|
454
|
+
|
|
455
|
+
dvi-am:
|
|
456
|
+
|
|
457
|
+
html: html-recursive
|
|
458
|
+
|
|
459
|
+
html-am:
|
|
460
|
+
|
|
461
|
+
info: info-recursive
|
|
462
|
+
|
|
463
|
+
info-am:
|
|
464
|
+
|
|
465
|
+
install-data-am:
|
|
466
|
+
|
|
467
|
+
install-dvi: install-dvi-recursive
|
|
468
|
+
|
|
469
|
+
install-dvi-am:
|
|
470
|
+
|
|
471
|
+
install-exec-am:
|
|
472
|
+
|
|
473
|
+
install-html: install-html-recursive
|
|
474
|
+
|
|
475
|
+
install-html-am:
|
|
476
|
+
|
|
477
|
+
install-info: install-info-recursive
|
|
478
|
+
|
|
479
|
+
install-info-am:
|
|
480
|
+
|
|
481
|
+
install-man:
|
|
482
|
+
|
|
483
|
+
install-pdf: install-pdf-recursive
|
|
484
|
+
|
|
485
|
+
install-pdf-am:
|
|
486
|
+
|
|
487
|
+
install-ps: install-ps-recursive
|
|
488
|
+
|
|
489
|
+
install-ps-am:
|
|
490
|
+
|
|
491
|
+
installcheck-am:
|
|
492
|
+
|
|
493
|
+
maintainer-clean: maintainer-clean-recursive
|
|
494
|
+
-rm -f Makefile
|
|
495
|
+
maintainer-clean-am: distclean-am maintainer-clean-generic
|
|
496
|
+
|
|
497
|
+
mostlyclean: mostlyclean-recursive
|
|
498
|
+
|
|
499
|
+
mostlyclean-am: mostlyclean-generic
|
|
500
|
+
|
|
501
|
+
pdf: pdf-recursive
|
|
502
|
+
|
|
503
|
+
pdf-am:
|
|
504
|
+
|
|
505
|
+
ps: ps-recursive
|
|
506
|
+
|
|
507
|
+
ps-am:
|
|
508
|
+
|
|
509
|
+
uninstall-am:
|
|
510
|
+
|
|
511
|
+
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
|
|
512
|
+
install-am install-strip tags-recursive
|
|
513
|
+
|
|
514
|
+
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
|
515
|
+
all all-am check check-am clean clean-generic ctags \
|
|
516
|
+
ctags-recursive distclean distclean-generic distclean-tags \
|
|
517
|
+
distdir dvi dvi-am html html-am info info-am install \
|
|
518
|
+
install-am install-data install-data-am install-dvi \
|
|
519
|
+
install-dvi-am install-exec install-exec-am install-html \
|
|
520
|
+
install-html-am install-info install-info-am install-man \
|
|
521
|
+
install-pdf install-pdf-am install-ps install-ps-am \
|
|
522
|
+
install-strip installcheck installcheck-am installdirs \
|
|
523
|
+
installdirs-am maintainer-clean maintainer-clean-generic \
|
|
524
|
+
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
|
|
525
|
+
tags-recursive uninstall uninstall-am
|
|
526
|
+
|
|
527
|
+
|
|
528
|
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
|
529
|
+
# Otherwise a system limit (for SysV at least) may be exceeded.
|
|
530
|
+
.NOEXPORT:
|