Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Mar 2017 14:09:25 +0000 (UTC)
From:      Jilles Tjoelker <jilles@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r315985 - in head/usr.bin/diff: . tests
Message-ID:  <201703261409.v2QE9PB6005791@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jilles
Date: Sun Mar 26 14:09:25 2017
New Revision: 315985
URL: https://svnweb.freebsd.org/changeset/base/315985

Log:
  diff: Fix mtime of file1 in -u/-c header line.
  
  PR:		218018
  Reviewed by:	bapt
  Differential Revision:	https://reviews.freebsd.org/D10140

Added:
  head/usr.bin/diff/tests/header.out   (contents, props changed)
Modified:
  head/usr.bin/diff/diffreg.c
  head/usr.bin/diff/tests/Makefile
  head/usr.bin/diff/tests/diff_test.sh

Modified: head/usr.bin/diff/diffreg.c
==============================================================================
--- head/usr.bin/diff/diffreg.c	Sun Mar 26 13:03:16 2017	(r315984)
+++ head/usr.bin/diff/diffreg.c	Sun Mar 26 14:09:25 2017	(r315985)
@@ -1614,7 +1614,7 @@ print_header(const char *file1, const ch
 	char buf2[256];
 	char end1[10];
 	char end2[10];
-	struct tm *tm_ptr1, *tm_ptr2;
+	struct tm tm1, tm2, *tm_ptr1, *tm_ptr2;
 	int nsec1 = TIMESPEC_NS (stb1.st_mtime);
 	int nsec2 = TIMESPEC_NS (stb2.st_mtime);
 
@@ -1626,8 +1626,8 @@ print_header(const char *file1, const ch
 
 	if (cflag)
 		time_format = "%c";
-	tm_ptr1 = localtime(&stb1.st_mtime);
-	tm_ptr2 = localtime(&stb2.st_mtime);
+	tm_ptr1 = localtime_r(&stb1.st_mtime, &tm1);
+	tm_ptr2 = localtime_r(&stb2.st_mtime, &tm2);
 	strftime(buf1, 256, time_format, tm_ptr1);
 	strftime(buf2, 256, time_format, tm_ptr2);
 	if (!cflag) {

Modified: head/usr.bin/diff/tests/Makefile
==============================================================================
--- head/usr.bin/diff/tests/Makefile	Sun Mar 26 13:03:16 2017	(r315984)
+++ head/usr.bin/diff/tests/Makefile	Sun Mar 26 14:09:25 2017	(r315985)
@@ -19,7 +19,8 @@ ${PACKAGE}FILES+=	\
 	simple_p.out \
 	unified_p.out \
 	unified_c9999.out \
-	unified_9999.out
+	unified_9999.out \
+	header.out
 
 NETBSD_ATF_TESTS_SH+=	netbsd_diff_test
 

Modified: head/usr.bin/diff/tests/diff_test.sh
==============================================================================
--- head/usr.bin/diff/tests/diff_test.sh	Sun Mar 26 13:03:16 2017	(r315984)
+++ head/usr.bin/diff/tests/diff_test.sh	Sun Mar 26 14:09:25 2017	(r315985)
@@ -2,6 +2,7 @@
 
 atf_test_case simple
 atf_test_case unified
+atf_test_case header
 
 simple_body()
 {
@@ -46,8 +47,20 @@ unified_body()
 		diff -u9999 -L input_c1.in -L input_c2.in "$(atf_get_srcdir)/input_c1.in" "$(atf_get_srcdir)/input_c2.in"
 }
 
+header_body()
+{
+	export TZ=UTC
+	: > empty
+	echo hello > hello
+	touch -d 2015-04-03T01:02:03 empty
+	touch -d 2016-12-22T11:22:33 hello
+	atf_check -o "file:$(atf_get_srcdir)/header.out" -s eq:1 \
+		diff -u empty hello
+}
+
 atf_init_test_cases()
 {
 	atf_add_test_case simple
 	atf_add_test_case unified
+	atf_add_test_case header
 }

Added: head/usr.bin/diff/tests/header.out
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/usr.bin/diff/tests/header.out	Sun Mar 26 14:09:25 2017	(r315985)
@@ -0,0 +1,4 @@
+--- empty	2015-04-03 01:02:03.000000000 +0000
++++ hello	2016-12-22 11:22:33.000000000 +0000
+@@ -0,0 +1 @@
++hello



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201703261409.v2QE9PB6005791>