tnef 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|