1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
Description: Fixes by ZeroC, Inc.
Author: ZeroC, Inc.
Bug-Debian: http://bugs.debian.org/611749
--- mcpp-2.7.2.orig/src/main.c
+++ mcpp-2.7.2/src/main.c
@@ -326,6 +326,8 @@ static void init_main( void)
= FALSE;
option_flags.trig = TRIGRAPHS_INIT;
option_flags.dig = DIGRAPHS_INIT;
+ sh_file = NULL;
+ sh_line = 0;
}
int mcpp_lib_main
--- mcpp-2.7.2.orig/src/support.c
+++ mcpp-2.7.2/src/support.c
@@ -188,7 +188,7 @@ static char * append_to_buffer(
size_t length
)
{
- if (mem_buf_p->bytes_avail < length) { /* Need to allocate more memory */
+ if (mem_buf_p->bytes_avail < length + 1) { /* Need to allocate more memory */
size_t size = MAX( BUF_INCR_SIZE, length);
if (mem_buf_p->buffer == NULL) { /* 1st append */
@@ -1722,6 +1722,8 @@ com_start:
sp -= 2;
while (*sp != '\n') /* Until end of line */
mcpp_fputc( *sp++, OUT);
+ mcpp_fputc( '\n', OUT);
+ wrong_line = TRUE;
}
goto end_line;
default: /* Not a comment */
--- mcpp-2.7.2.orig/src/internal.H
+++ mcpp-2.7.2/src/internal.H
@@ -390,6 +390,8 @@ extern char * const work_end; /* E
extern char identifier[]; /* Lastly scanned name */
extern IFINFO ifstack[]; /* Information of #if nesting */
extern char work_buf[];
+extern FILEINFO * sh_file;
+extern int sh_line;
/* Temporary buffer for directive line and macro expansion */
/* main.c */
@@ -557,6 +559,6 @@ extern void init_system( void);
#endif
#endif
-#if HOST_HAVE_STPCPY
+#if HOST_HAVE_STPCPY && !defined(stpcpy)
extern char * stpcpy( char * dest, const char * src);
#endif
--- mcpp-2.7.2.orig/src/system.c
+++ mcpp-2.7.2/src/system.c
@@ -3858,6 +3858,9 @@ static int chk_dirp(
}
#endif
+FILEINFO* sh_file;
+int sh_line;
+
void sharp(
FILEINFO * sharp_file,
int flag /* Flag to append to the line for GCC */
@@ -3868,8 +3871,6 @@ void sharp(
* else (i.e. 'sharp_file' is NULL) 'infile'.
*/
{
- static FILEINFO * sh_file;
- static int sh_line;
FILEINFO * file;
int line;
|