Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Aug 2012 23:06:16 +0000
From:      jhagewood@FreeBSD.org
To:        svn-soc-all@FreeBSD.org
Subject:   socsvn commit: r240337 - soc2012/jhagewood/sdiff
Message-ID:  <20120813230616.AD226106564A@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhagewood
Date: Mon Aug 13 23:06:16 2012
New Revision: 240337
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=240337

Log:
  File extension detection.

Modified:
  soc2012/jhagewood/sdiff/decompress.c
  soc2012/jhagewood/sdiff/sdiff.c
  soc2012/jhagewood/sdiff/sdiff.h

Modified: soc2012/jhagewood/sdiff/decompress.c
==============================================================================
--- soc2012/jhagewood/sdiff/decompress.c	Mon Aug 13 21:29:34 2012	(r240336)
+++ soc2012/jhagewood/sdiff/decompress.c	Mon Aug 13 23:06:16 2012	(r240337)
@@ -71,3 +71,16 @@
 	 
 	return file;
 }
+
+/* Checks for a gz file extension. */
+int
+isgzip(char *filename) {
+
+	int length = (sizeof filename)-1;
+	
+	if (filename[length-1] == 'g' && filename[length] == 'z')
+		return 1;
+
+	return 0;
+	
+}

Modified: soc2012/jhagewood/sdiff/sdiff.c
==============================================================================
--- soc2012/jhagewood/sdiff/sdiff.c	Mon Aug 13 21:29:34 2012	(r240336)
+++ soc2012/jhagewood/sdiff/sdiff.c	Mon Aug 13 23:06:16 2012	(r240337)
@@ -62,6 +62,7 @@
 };
 
 extern FILE *decompressfile(char *, char *);
+extern int isgzip(char *);
 
 static void astrcat(char **, const char *);
 static void enqueue(char *, char, char *);
@@ -444,6 +445,13 @@
 		if ((diffpipe = fdopen(fd[0], "r")) == NULL)
 			err(2, "could not open diff pipe");
 	}
+	
+	/* Checks for file extension to determine behavior. */
+	if (isgzip(filename1) || isgzip(filename2))
+		filebehave = FILE_GZIP);
+	else
+		filebehave = FILE_NORMAL;
+		
 	if (filebehave == FILE_NORMAL) {
 		if ((file1 = fopen(filename1, "r")) == NULL)
 			err(2, "could not open %s", filename1);

Modified: soc2012/jhagewood/sdiff/sdiff.h
==============================================================================
--- soc2012/jhagewood/sdiff/sdiff.h	Mon Aug 13 21:29:34 2012	(r240336)
+++ soc2012/jhagewood/sdiff/sdiff.h	Mon Aug 13 23:06:16 2012	(r240337)
@@ -37,3 +37,4 @@
 #define ZDIFF_PATH	"/usr/bin/zdiff"
 
 FILE *decompressfile(char *, char *);
+int isgzip(char *);



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