From 7a19068063f89e29e6dea3f033d6229edc696094 Mon Sep 17 00:00:00 2001
From: troth <troth@81a1dc3b-b13d-400b-aceb-764788c761c2>
Date: Thu, 15 Jul 2004 17:29:35 +0000
Subject: [PATCH] * main.c (main): Don't indent CPP directives. When showing
 update progress in a no tty situation, use unbuffered IO for all systems, not
 just win32 native. Update copyright year when printing version. Remove
 warning about native win32 being experimental. Split a line string. *
 ppiwin.c: Update copyright year. Add cvs Id keyword. (usleep): Cleanup debug
 CPP directives to improve readability. * ser_win32.c: Include <stdio.h> to
 fix failing build.

git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@430 81a1dc3b-b13d-400b-aceb-764788c761c2
---
 ChangeLog   | 13 +++++++++++++
 main.c      | 18 ++++++------------
 ppiwin.c    | 42 +++++++++++++++++++++++++++---------------
 ser_win32.c |  1 +
 4 files changed, 47 insertions(+), 27 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 13f72b15..6963d68e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2004-07-15  Theodore A. Roth  <troth@openavr.org>
+
+	* main.c (main): Don't indent CPP directives.
+	When showing update progress in a no tty situation, use unbuffered IO
+	for all systems, not just win32 native.
+	Update copyright year when printing version.
+	Remove warning about native win32 being experimental.
+	Split a line string.
+	* ppiwin.c: Update copyright year.
+	Add cvs Id keyword.
+	(usleep): Cleanup debug CPP directives to improve readability.
+	* ser_win32.c: Include <stdio.h> to fix failing build.
+
 2004-07-08  Theodore A. Roth  <troth@openavr.org>
 
 	* AUTHORS: Add names of recent major contributors.
diff --git a/main.c b/main.c
index 5ab23cc7..49b91212 100644
--- a/main.c
+++ b/main.c
@@ -747,12 +747,12 @@ int main(int argc, char * argv [])
   baudrate      = 0;
 
 
-  #if defined(WIN32NATIVE)
+#if defined(WIN32NATIVE)
 
   win_sys_config_set(sys_config);
   win_usr_config_set(usr_config);
   
-  #else
+#else
 
   strcpy(sys_config, CONFIG_DIR);
   i = strlen(sys_config);
@@ -770,7 +770,7 @@ int main(int argc, char * argv [])
     strcat(usr_config, ".avrduderc");
   }
 
-  #endif
+#endif
 
   len = strlen(progname) + 2;
   for (i=0; i<len; i++)
@@ -904,13 +904,11 @@ int main(int argc, char * argv [])
       update_progress = update_progress_tty;
     else {
       update_progress = update_progress_no_tty;
-      #if defined(WIN32NATIVE)
       /* disable all buffering of stderr for compatibility with
          software that captures and redirects output to a GUI
          i.e. Programmers Notepad */
       setvbuf( stderr, NULL, _IONBF, 0 );
       setvbuf( stdout, NULL, _IONBF, 0 );
-      #endif /* WIN32NATIVE */
 	}
   }
 
@@ -921,13 +919,8 @@ int main(int argc, char * argv [])
      */
     fprintf(stderr,
             "\n%s: Version %s\n"
-            "%sCopyright (c) 2000-2003 Brian Dean, bsd@bsdhome.com\n\n",
+            "%sCopyright (c) 2000-2004 Brian Dean, bsd@bsdhome.com\n\n",
             progname, version, progbuf);
-	#if defined(WIN32NATIVE)
-	#warning "Experimental Win32 Native Build"
-	fprintf(stderr,"%sExperimental Windows32 native build by Martin Thomas\n\n",
-		progbuf);
-	#endif
   }
 
   if (verbose) {
@@ -1218,7 +1211,8 @@ int main(int argc, char * argv [])
       if ((strcasecmp(m->desc, "flash") == 0) && (upd->op == DEVICE_WRITE)) {
         erase = 1;
         fprintf(stderr,
-                "%s: NOTE: FLASH memory has been specified, an erase cycle will be performed\n"
+                "%s: NOTE: FLASH memory has been specified, an erase cycle "
+                "will be performed\n"
                 "%sTo disable this feature, specify the -D option.\n",
                 progname, progbuf);
         break;
diff --git a/ppiwin.c b/ppiwin.c
index e8a68fb6..7e274331 100644
--- a/ppiwin.c
+++ b/ppiwin.c
@@ -1,6 +1,6 @@
 /*
  * avrdude - A Downloader/Uploader for AVR device programmers
- * Copyright (C) 2003  Eric B. Weddington <eric@ecentral.com>
+ * Copyright (C) 2003, 2004  Eric B. Weddington <ericw@evcohs.com>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+/* $Id$ */
 
 /*
 This is the parallel port interface for Windows built using Cygwin.
@@ -327,13 +328,30 @@ void gettimeofday(struct timeval*tv, void*z){
 
 // #define W32USLEEPDBG
 
+#ifdef W32USLEEPDBG
+
+#  define DEBUG_QueryPerformanceCounter(arg) QueryPerformanceCounter(arg)
+#  define DEBUG_DisplayTimingInfo(start, stop, freq, us, has_highperf)     \
+     do {                                                                  \
+       unsigned long dt;                                                   \
+       dt = (unsigned long)((stop.QuadPart - start.QuadPart) * 1000 * 1000 \
+                            / freq.QuadPart);                              \
+       fprintf(stderr,                                                     \
+               "hpt:%i usleep usec:%lu sleep msec:%lu timed usec:%lu\n",   \
+               has_highperf, us, ((us + 999) / 1000), dt);                 \
+     } while (0)
+
+#else
+
+#  define DEBUG_QueryPerformanceCounter(arg)
+#  define DEBUG_DisplayTimingInfo(start, stop, freq, us, has_highperf)
+
+#endif
+
 void usleep(unsigned long us)
 {
 	int has_highperf;
 	LARGE_INTEGER freq,start,stop,loopend;
-	#ifdef W32USLEEPDBG
-	unsigned long dt;
-	#endif
 
 	// workaround: although usleep is very precise if using
 	// high-performance-timers there are sometimes problems with
@@ -354,21 +372,15 @@ void usleep(unsigned long us)
 		} while (stop.QuadPart<=loopend.QuadPart);
 	}
 	else {
-		#ifdef W32USLEEPDBG
-		QueryPerformanceCounter(&start);
-		#endif
+		DEBUG_QueryPerformanceCounter(&start);
+
 		Sleep(1);
 		Sleep( (DWORD)((us+999)/1000) );
-		#ifdef W32USLEEPDBG
-		QueryPerformanceCounter(&stop);
-		#endif
+
+		DEBUG_QueryPerformanceCounter(&stop);
 	}
 	
-	#ifdef W32USLEEPDBG
-	dt=(unsigned long)((stop.QuadPart-start.QuadPart)*1000*1000/freq.QuadPart);
-	fprintf(stderr,"hpt:%i usleep usec:%lu sleep msec:%lu timed usec:%lu\n",
-		has_highperf,us,((us+999)/1000),dt);
-	#endif
+    DEBUG_DisplayTimingInfo(start, stop, freq, us, has_highperf);
 }
 
 #endif
diff --git a/ser_win32.c b/ser_win32.c
index 19e0dc20..72f0b33f 100644
--- a/ser_win32.c
+++ b/ser_win32.c
@@ -26,6 +26,7 @@
 #if defined(WIN32NATIVE)
 
 #include <windows.h>
+#include <stdio.h>
 #include <ctype.h>   /* for isprint */
 #include "serial.h"