Skip to content

Commit

Permalink
Merge from gnulib.
Browse files Browse the repository at this point in the history
This incorporates:
2014-03-26 strftime: wrap macros in "do {...} while(0)"
* lib/strftime.c, doc/misc/texinfo.tex: Update from gnulib.
  • Loading branch information
eggert committed Mar 26, 2014
1 parent c293543 commit 9f03577
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 26 deletions.
6 changes: 6 additions & 0 deletions ChangeLog
@@ -1,3 +1,9 @@
2014-03-26 Paul Eggert <eggert@cs.ucla.edu>

Merge from gnulib, incorporating:
2014-03-26 strftime: wrap macros in "do {...} while(0)"
* lib/strftime.c: Update from gnulib.

2014-03-07 Paul Eggert <eggert@cs.ucla.edu>

Merge from gnulib, incorporating:
Expand Down
4 changes: 4 additions & 0 deletions doc/misc/ChangeLog
@@ -1,3 +1,7 @@
2014-03-26 Paul Eggert <eggert@cs.ucla.edu>

* texinfo.tex: Update from gnulib.

2014-03-24 Michael Albinus <michael.albinus@gmx.de>

* tramp.texi (Frequently Asked Questions): Add fish shell settings.
Expand Down
28 changes: 16 additions & 12 deletions doc/misc/texinfo.tex
Expand Up @@ -3,7 +3,7 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
\def\texinfoversion{2014-02-16.16}
\def\texinfoversion{2014-03-17.07}
%
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
Expand Down Expand Up @@ -3935,19 +3935,23 @@
}
% multitable-only commands.
%
% @headitem starts a heading row, which we typeset in bold.
% Assignments have to be global since we are inside the implicit group
% of an alignment entry. \everycr resets \everytab so we don't have to
%
% @headitem starts a heading row, which we typeset in bold. Assignments
% have to be global since we are inside the implicit group of an
% alignment entry. \everycr below resets \everytab so we don't have to
% undo it ourselves.
\def\headitemfont{\b}% for people to use in the template row; not changeable
\def\headitem{%
\checkenv\multitable
\crcr
\gdef\headitemcrhook{\nobreak}% attempt to avoid page break after headings
\global\everytab={\bf}% can't use \headitemfont since the parsing differs
\the\everytab % for the first item
}%
%
% default for tables with no headings.
\let\headitemcrhook=\relax
%
% A \tab used to include \hskip1sp. But then the space in a template
% line is not enough. That is bad. So let's go back to just `&' until
% we again encounter the problem the 1sp was intended to solve.
Expand Down Expand Up @@ -3978,15 +3982,15 @@
%
\everycr = {%
\noalign{%
\global\everytab={}%
\global\everytab={}% Reset from possible headitem.
\global\colcount=0 % Reset the column counter.
% Check for saved footnotes, etc.
%
% Check for saved footnotes, etc.:
\checkinserts
% Keeps underfull box messages off when table breaks over pages.
%\filbreak
% Maybe so, but it also creates really weird page breaks when the
% table breaks over pages. Wouldn't \vfil be better? Wait until the
% problem manifests itself, so it can be fixed for real --karl.
%
% Perhaps a \nobreak, then reset:
\headitemcrhook
\global\let\headitemcrhook=\relax
}%
}%
%
Expand Down
48 changes: 34 additions & 14 deletions lib/strftime.c
Expand Up @@ -681,24 +681,44 @@ strftime_case_ (bool upcase, STREAM_OR_CHAR_T *s,
switch (format_char)
{
#define DO_NUMBER(d, v) \
digits = d; \
number_value = v; goto do_number
do \
{ \
digits = d; \
number_value = v; \
goto do_number; \
} \
while (0)
#define DO_SIGNED_NUMBER(d, negative, v) \
digits = d; \
negative_number = negative; \
u_number_value = v; goto do_signed_number
do \
{ \
digits = d; \
negative_number = negative; \
u_number_value = v; \
goto do_signed_number; \
} \
while (0)

/* The mask is not what you might think.
When the ordinal i'th bit is set, insert a colon
before the i'th digit of the time zone representation. */
#define DO_TZ_OFFSET(d, negative, mask, v) \
digits = d; \
negative_number = negative; \
tz_colon_mask = mask; \
u_number_value = v; goto do_tz_offset
do \
{ \
digits = d; \
negative_number = negative; \
tz_colon_mask = mask; \
u_number_value = v; \
goto do_tz_offset; \
} \
while (0)
#define DO_NUMBER_SPACEPAD(d, v) \
digits = d; \
number_value = v; goto do_number_spacepad
do \
{ \
digits = d; \
number_value = v; \
goto do_number_spacepad; \
} \
while (0)

case L_('%'):
if (modifier != 0)
Expand Down Expand Up @@ -1265,9 +1285,9 @@ strftime_case_ (bool upcase, STREAM_OR_CHAR_T *s,
}
if (modifier == L_('O'))
goto bad_format;
else
DO_SIGNED_NUMBER (4, tp->tm_year < -TM_YEAR_BASE,
tp->tm_year + (unsigned int) TM_YEAR_BASE);

DO_SIGNED_NUMBER (4, tp->tm_year < -TM_YEAR_BASE,
tp->tm_year + (unsigned int) TM_YEAR_BASE);

case L_('y'):
if (modifier == L_('E'))
Expand Down

0 comments on commit 9f03577

Please sign in to comment.