[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Groff-commit] groff ChangeLog src/roff/troff/input.cpp
From: |
Werner LEMBERG |
Subject: |
[Groff-commit] groff ChangeLog src/roff/troff/input.cpp |
Date: |
Mon, 19 Mar 2007 08:04:29 +0000 |
CVSROOT: /cvsroot/groff
Module name: groff
Changes by: Werner LEMBERG <wl> 07/03/19 08:04:29
Modified files:
. : ChangeLog
src/roff/troff : input.cpp
Log message:
* src/roff/troff/input.cpp (get_copy): Add third argument to control
whether \E shall be expanded.
(get_char_for_escape_name): Allow \E.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/groff/ChangeLog?cvsroot=groff&r1=1.1078&r2=1.1079
http://cvs.savannah.gnu.org/viewcvs/groff/src/roff/troff/input.cpp?cvsroot=groff&r1=1.43&r2=1.44
Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/groff/groff/ChangeLog,v
retrieving revision 1.1078
retrieving revision 1.1079
diff -u -b -r1.1078 -r1.1079
--- ChangeLog 15 Mar 2007 20:41:49 -0000 1.1078
+++ ChangeLog 19 Mar 2007 08:04:29 -0000 1.1079
@@ -1,3 +1,9 @@
+2007-03-19 Werner LEMBERG <address@hidden>
+
+ * src/roff/troff/input.cpp (get_copy): Add third argument to control
+ whether \E shall be expanded.
+ (get_char_for_escape_name): Allow \E.
+
2007-03-15 Werner LEMBERG <address@hidden>
* tmac/s.tmac (MO, CH, pg*OH, pg*EH, pg*OF, pg*EF, *, [., .],
Index: src/roff/troff/input.cpp
===================================================================
RCS file: /cvsroot/groff/groff/src/roff/troff/input.cpp,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -b -r1.43 -r1.44
--- src/roff/troff/input.cpp 26 Oct 2006 19:39:07 -0000 1.43
+++ src/roff/troff/input.cpp 19 Mar 2007 08:04:29 -0000 1.44
@@ -1,6 +1,6 @@
// -*- C++ -*-
/* Copyright (C) 1989, 1990, 1991, 1992, 2000, 2001, 2002, 2003, 2004, 2005,
- 2006
+ 2006, 2007
Free Software Foundation, Inc.
Written by James Clark (address@hidden)
@@ -128,15 +128,15 @@
// Defaults to the current directory.
search_path include_search_path(0, 0, 0, 1);
-static int get_copy(node**, int = 0);
+static int get_copy(node**, int = 0, int = 0);
static void copy_mode_error(const char *,
const errarg & = empty_errarg,
const errarg & = empty_errarg,
const errarg & = empty_errarg);
enum read_mode { ALLOW_EMPTY, WITH_ARGS, NO_ARGS };
-static symbol read_escape_name(read_mode mode = NO_ARGS);
-static symbol read_long_escape_name(read_mode mode = NO_ARGS);
+static symbol read_escape_name(read_mode = NO_ARGS);
+static symbol read_long_escape_name(read_mode = NO_ARGS);
static void interpolate_string(symbol);
static void interpolate_string_with_args(symbol);
static void interpolate_macro(symbol);
@@ -799,7 +799,7 @@
static char get_char_for_escape_name(int allow_space = 0)
{
- int c = get_copy(0);
+ int c = get_copy(0, 0, 1);
switch (c) {
case EOF:
copy_mode_error("end of input in escape name");
@@ -940,7 +940,7 @@
return symbol(buf);
}
-static int get_copy(node **nd, int defining)
+static int get_copy(node **nd, int defining, int handle_escape_E)
{
for (;;) {
int c = input_stack::get(nd);
@@ -968,6 +968,8 @@
}
if (c == DOUBLE_QUOTE)
continue;
+ if (c == ESCAPE_E && handle_escape_E)
+ c = escape_char;
if (c == ESCAPE_NEWLINE) {
if (defining)
return c;
@@ -977,6 +979,7 @@
}
if (c != escape_char || escape_char <= 0)
return c;
+ again:
c = input_stack::peek();
switch(c) {
case 0:
@@ -1022,6 +1025,8 @@
return ESCAPE_e;
case 'E':
(void)input_stack::get(0);
+ if (handle_escape_E)
+ goto again;
return ESCAPE_E;
case 'n':
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Groff-commit] groff ChangeLog src/roff/troff/input.cpp,
Werner LEMBERG <=