diff options
Diffstat (limited to 'contrib/texinfo/makeinfo/defun.c')
-rw-r--r-- | contrib/texinfo/makeinfo/defun.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/contrib/texinfo/makeinfo/defun.c b/contrib/texinfo/makeinfo/defun.c index b261a99..49dbd43 100644 --- a/contrib/texinfo/makeinfo/defun.c +++ b/contrib/texinfo/makeinfo/defun.c @@ -1,5 +1,5 @@ /* defun.c -- @defun and friends. - $Id: defun.c,v 1.18 2002/01/22 18:01:24 karl Exp $ + $Id: defun.c,v 1.19 2002/03/18 16:54:54 karl Exp $ Copyright (C) 1998, 99, 2000, 01, 02 Free Software Foundation, Inc. @@ -66,6 +66,7 @@ scan_group_in_string (string_pointer) { char *scan_string = (*string_pointer) + 1; unsigned int level = 1; + int started_command = 0; for (;;) { @@ -80,17 +81,20 @@ scan_group_in_string (string_pointer) { /* Tweak line_number to compensate for fact that we gobbled the whole line before coming here. */ - line_number -= 1; + line_number--; line_error (_("Missing `}' in @def arg")); - line_number += 1; + line_number++; *string_pointer = scan_string - 1; return 0; } - if (c == '{') - level += 1; - if (c == '}') - level -= 1; + if (c == '{' && !started_command) + level++; + if (c == '}' && !started_command) + level--; + + /* remember if at @. */ + started_command = (c == '@' && !started_command); } } |