>From d4f2151d6964a8d73f873f3e1f46b71af98d9eee Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Wed, 27 Aug 2014 09:06:26 +0100 Subject: [PATCH] Honour GROFF_NO_TIMESTAMPS, for more reproducible builds * src/devices/grohtml/post-html.cpp, src/devices/gropdf/gropdf.pl, src/devices/grops/ps.cpp: Don't emit creation timestamp if the environment variable `GROFF_NO_TIMESTAMPS' is set. * src/devices/grohtml/grohtml.man, src/devices/gropdf/gropdf.man, src/devices/grops/grops.man: Updated. --- ChangeLog | 8 +++++++ src/devices/grohtml/grohtml.man | 6 ++++++ src/devices/grohtml/post-html.cpp | 45 ++++++++++++++++++++++----------------- src/devices/gropdf/gropdf.man | 6 ++++++ src/devices/gropdf/gropdf.pl | 16 ++++++++------ src/devices/grops/grops.man | 6 ++++++ src/devices/grops/ps.cpp | 3 ++- 7 files changed, 63 insertions(+), 27 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0812769..8b956c9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2014-08-27 Colin Watson + + * src/devices/grohtml/post-html.cpp, src/devices/gropdf/gropdf.pl, + src/devices/grops/ps.cpp: Don't emit creation timestamp if the + environment variable `GROFF_NO_TIMESTAMPS' is set. * + src/devices/grohtml/grohtml.man, src/devices/gropdf/gropdf.man, + src/devices/grops/grops.man: Updated. + 2014-08-20 Bernd Warken * groff.7 (man/groff.man): Add further preprocessor regions. diff --git a/src/devices/grohtml/grohtml.man b/src/devices/grohtml/grohtml.man index 02209e2..f20883d 100644 --- a/src/devices/grohtml/grohtml.man +++ b/src/devices/grohtml/grohtml.man @@ -370,6 +370,12 @@ and for more details. . . +.TP +.SM +.B GROFF_NO_TIMESTAMPS +If set, do not include the creation timestamp in the output file. +. +. .SH BUGS .B Grohtml has been completely redesigned and rewritten. diff --git a/src/devices/grohtml/post-html.cpp b/src/devices/grohtml/post-html.cpp index f4656a0..60fddbc 100644 --- a/src/devices/grohtml/post-html.cpp +++ b/src/devices/grohtml/post-html.cpp @@ -36,6 +36,7 @@ along with this program. If not, see . */ #include #endif +#include #include #include #include @@ -4988,12 +4989,6 @@ void html_printer::do_file_components (void) file_list.move_next(); if (file_list.is_new_output_file()) { -#ifdef LONG_FOR_TIME_T - long t; -#else - time_t t; -#endif - if (fragment_no > 1) write_navigation(top, prev, next, current); prev = current; @@ -5014,10 +5009,18 @@ void html_printer::do_file_components (void) .put_string(Version_string) .end_comment(); - t = time(0); - html.begin_comment("CreationDate: ") - .put_string(ctime(&t), strlen(ctime(&t))-1) - .end_comment(); + if (!getenv("GROFF_NO_TIMESTAMPS")) { +#ifdef LONG_FOR_TIME_T + long t; +#else + time_t t; +#endif + + t = time(0); + html.begin_comment("CreationDate: ") + .put_string(ctime(&t), strlen(ctime(&t))-1) + .end_comment(); + } if (dialect == html4) writeHeadMetaStyle(); @@ -5107,12 +5110,6 @@ void html_printer::writeHeadMetaStyle (void) html_printer::~html_printer() { -#ifdef LONG_FOR_TIME_T - long t; -#else - time_t t; -#endif - if (current_paragraph) current_paragraph->flush_text(); html.end_line(); @@ -5127,10 +5124,18 @@ html_printer::~html_printer() .put_string(Version_string) .end_comment(); - t = time(0); - html.begin_comment("CreationDate: ") - .put_string(ctime(&t), strlen(ctime(&t))-1) - .end_comment(); + if (!getenv("GROFF_NO_TIMESTAMPS")) { +#ifdef LONG_FOR_TIME_T + long t; +#else + time_t t; +#endif + + t = time(0); + html.begin_comment("CreationDate: ") + .put_string(ctime(&t), strlen(ctime(&t))-1) + .end_comment(); + } if (dialect == html4) writeHeadMetaStyle(); diff --git a/src/devices/gropdf/gropdf.man b/src/devices/gropdf/gropdf.man index 426a4d0..f698104 100644 --- a/src/devices/gropdf/gropdf.man +++ b/src/devices/gropdf/gropdf.man @@ -977,6 +977,12 @@ and for more details. . . +.TP +.SM +.B GROFF_NO_TIMESTAMPS +If set, do not include the creation timestamp in the output file. +. +. .SH FILES . .Tp \w'address@hidden@/devpdf/download'u+2n diff --git a/src/devices/gropdf/gropdf.pl b/src/devices/gropdf/gropdf.pl index f18bac8..2054c53 100644 --- a/src/devices/gropdf/gropdf.pl +++ b/src/devices/gropdf/gropdf.pl @@ -241,13 +241,17 @@ elsif (exists($ppsz{$papersz})) @address@hidden(0,0,$ppsz{$papersz}->[0],$ppsz{$papersz}->[1]); } -my (@dt)=localtime(time); -my $dt=PDFDate(address@hidden); - my %info=('Creator' => "(groff version $cfg{GROFF_VERSION})", - 'Producer' => "(gropdf version $cfg{GROFF_VERSION})", - 'ModDate' => "($dt)", - 'CreationDate' => "($dt)"); + 'Producer' => "(gropdf version $cfg{GROFF_VERSION})"); + +if (!exists($ENV{GROFF_NO_TIMESTAMPS})) { + my (@dt)=localtime(time); + my $dt=PDFDate(address@hidden); + + $info{'ModDate'} = "($dt)"; + $info{'CreationDate'} = "($dt)"; +} + while (<>) { chomp; diff --git a/src/devices/grops/grops.man b/src/devices/grops/grops.man index 50b4696..6ed1c91 100644 --- a/src/devices/grops/grops.man +++ b/src/devices/grops/grops.man @@ -1378,6 +1378,12 @@ and for more details. . . +.TP +.SM +.B GROFF_NO_TIMESTAMPS +If set, do not include the creation timestamp in the output file. +. +. .SH FILES . .Tp \w'address@hidden@/devps/download'u+2n diff --git a/src/devices/grops/ps.cpp b/src/devices/grops/ps.cpp index ab1b080..ebea05e 100644 --- a/src/devices/grops/ps.cpp +++ b/src/devices/grops/ps.cpp @@ -32,6 +32,7 @@ along with this program. If not, see . */ #include "paper.h" #include "ps.h" +#include #include #ifdef NEED_DECLARATION_PUTENV @@ -1385,7 +1386,7 @@ ps_printer::~ps_printer() .comment_arg("version") .comment_arg(Version_string) .end_comment(); - { + if (!getenv("GROFF_NO_TIMESTAMPS")) { fputs("%%CreationDate: ", out.get_file()); #ifdef LONG_FOR_TIME_T long -- 2.1.0