summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorGlenn Randers-Pehrson <glennrp at users.sourceforge.net>2010-08-11 08:06:11 -0500
committerGlenn Randers-Pehrson <glennrp at users.sourceforge.net>2010-08-11 08:06:11 -0500
commit9f65059a5bd8019e1eb6a12e2729635c81d384f6 (patch)
tree5e5491a4a13259a1a9c419ab595c6c40de06cd10 /contrib
parentb757b1b5eef8c07742fcdd6155eb4ed76c96fe94 (diff)
downloadlibpng-9f65059a5bd8019e1eb6a12e2729635c81d384f6.tar.gz
[devel] Don't try to use version-script with cygwin/mingw.
Revised contrib/gregbook to work under cygwin/mingw.
Diffstat (limited to 'contrib')
-rw-r--r--contrib/gregbook/README2
-rw-r--r--contrib/gregbook/readpng2.c2
-rw-r--r--contrib/gregbook/rpng-win.c48
-rw-r--r--contrib/gregbook/rpng2-win.c54
4 files changed, 98 insertions, 8 deletions
diff --git a/contrib/gregbook/README b/contrib/gregbook/README
index cb6e5257e..35bf04fcc 100644
--- a/contrib/gregbook/README
+++ b/contrib/gregbook/README
@@ -165,7 +165,7 @@ RUNNING THE PROGRAMS: (VERY) BRIEF INTRO
rpng is a simple PNG viewer that can display transparent PNGs with a
specified background color; for example,
- rpng -bgcolor #ff0000 toucan.png
+ rpng -bgcolor \#ff0000 toucan.png
would display the image with a red background. rpng2 is a progressive
viewer that simulates a web browser in some respects; it can display
diff --git a/contrib/gregbook/readpng2.c b/contrib/gregbook/readpng2.c
index 2414f9091..036d050e4 100644
--- a/contrib/gregbook/readpng2.c
+++ b/contrib/gregbook/readpng2.c
@@ -140,7 +140,7 @@ int readpng2_init(mainprog_info *mainprog_ptr)
* version recognizes more chunks, add them to this list. If a
* future version of readpng2.c recognizes more chunks, delete them
* from this list. */
- static const png_byte chunks_to_ignore[] = {
+ static /* const */ png_byte chunks_to_ignore[] = {
99, 72, 82, 77, '\0', /* cHRM */
104, 73, 83, 84, '\0', /* hIST */
105, 67, 67, 80, '\0', /* iCCP */
diff --git a/contrib/gregbook/rpng-win.c b/contrib/gregbook/rpng-win.c
index 20209611e..f53ddc8ec 100644
--- a/contrib/gregbook/rpng-win.c
+++ b/contrib/gregbook/rpng-win.c
@@ -85,7 +85,33 @@
#include <string.h>
#include <time.h>
#include <windows.h>
+#ifdef __CYGWIN__
+/* getch replacement. Turns out, we don't really need this,
+ * but leave it here if we ever enable any of the uses of
+ * _getch in the main code
+ */
+#include <unistd.h>
+#include <termio.h>
+#include <sys/ioctl.h>
+int repl_getch( void )
+{
+ char ch;
+ int fd = fileno(stdin);
+ struct termio old_tty, new_tty;
+
+ ioctl(fd, TCGETA, &old_tty);
+ new_tty = old_tty;
+ new_tty.c_lflag &= ~(ICANON | ECHO | ISIG);
+ ioctl(fd, TCSETA, &new_tty);
+ fread(&ch, 1, sizeof(ch), stdin);
+ ioctl(fd, TCSETA, &old_tty);
+
+ return ch;
+}
+#define _getch repl_getch
+#else
#include <conio.h> /* only for _getch() */
+#endif
/* #define DEBUG : this enables the Trace() macros */
@@ -153,7 +179,7 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
filename = (char *)NULL;
-
+#ifndef __CYGWIN__
/* First reenable console output, which normally goes to the bit bucket
* for windowed apps. Closing the console window will terminate the
* app. Thanks to David.Geldreich@realviz.com for supplying the magical
@@ -162,6 +188,7 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
AllocConsole();
freopen("CONOUT$", "a", stderr);
freopen("CONOUT$", "a", stdout);
+#endif
/* Next set the default value for our display-system exponent, i.e.,
@@ -279,7 +306,9 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
/* print usage screen if any errors up to this point */
if (error) {
+#ifndef __CYGWIN__
int ch;
+#endif
fprintf(stderr, "\n%s %s: %s\n\n", PROGNAME, VERSION, appname);
readpng_version_info();
@@ -293,11 +322,15 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
"\t\t (e.g., ``#ff7700'' for orange: same as HTML colors);\n"
"\t\t used with transparent images\n"
"\nPress Q, Esc or mouse button 1 after image is displayed to quit.\n"
+#ifndef __CYGWIN__
"Press Q or Esc to quit this usage screen.\n"
+#endif
"\n", PROGNAME, default_display_exponent);
+#ifndef __CYGWIN__
do
ch = _getch();
while (ch != 'q' && ch != 'Q' && ch != 0x1B);
+#endif
exit(1);
}
@@ -333,18 +366,24 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
if (error) {
+#ifndef __CYGWIN__
int ch;
+#endif
fprintf(stderr, PROGNAME ": aborting.\n");
+#ifndef __CYGWIN__
do
ch = _getch();
while (ch != 'q' && ch != 'Q' && ch != 0x1B);
+#endif
exit(2);
} else {
fprintf(stderr, "\n%s %s: %s\n", PROGNAME, VERSION, appname);
+#ifndef __CYGWIN__
fprintf(stderr,
"\n [console window: closing this window will terminate %s]\n\n",
PROGNAME);
+#endif
}
@@ -417,7 +456,12 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
/* wait for the user to tell us when to quit */
printf(
- "Done. Press Q, Esc or mouse button 1 (within image window) to quit.\n");
+#ifndef __CYGWIN__
+ "Done. Press Q, Esc or mouse button 1 (within image window) to quit.\n"
+#else
+ "Done. Press mouse button 1 (within image window) to quit.\n"
+#endif
+ );
fflush(stdout);
while (GetMessage(&msg, NULL, 0, 0)) {
diff --git a/contrib/gregbook/rpng2-win.c b/contrib/gregbook/rpng2-win.c
index 8c831db12..fbdacb59b 100644
--- a/contrib/gregbook/rpng2-win.c
+++ b/contrib/gregbook/rpng2-win.c
@@ -96,7 +96,33 @@
#include <time.h>
#include <math.h> /* only for PvdM background code */
#include <windows.h>
+#ifdef __CYGWIN__
+/* getch replacement. Turns out, we don't really need this,
+ * but leave it here if we ever enable any of the uses of
+ * _getch in the main code
+ */
+#include <unistd.h>
+#include <termio.h>
+#include <sys/ioctl.h>
+int repl_getch( void )
+{
+ char ch;
+ int fd = fileno(stdin);
+ struct termio old_tty, new_tty;
+
+ ioctl(fd, TCGETA, &old_tty);
+ new_tty = old_tty;
+ new_tty.c_lflag &= ~(ICANON | ECHO | ISIG);
+ ioctl(fd, TCSETA, &new_tty);
+ fread(&ch, 1, sizeof(ch), stdin);
+ ioctl(fd, TCSETA, &old_tty);
+
+ return ch;
+}
+#define _getch repl_getch
+#else
#include <conio.h> /* only for _getch() */
+#endif
/* all for PvdM background code: */
#ifndef PI
@@ -270,7 +296,7 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
filename = (char *)NULL;
memset(&rpng2_info, 0, sizeof(mainprog_info));
-
+#ifndef __CYGWIN__
/* Next reenable console output, which normally goes to the bit bucket
* for windowed apps. Closing the console window will terminate the
* app. Thanks to David.Geldreich@realviz.com for supplying the magical
@@ -279,7 +305,7 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
AllocConsole();
freopen("CONOUT$", "a", stderr);
freopen("CONOUT$", "a", stdout);
-
+#endif
/* Set the default value for our display-system exponent, i.e., the
* product of the CRT exponent and the exponent corresponding to
@@ -413,7 +439,9 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
/* print usage screen if any errors up to this point */
if (error) {
+#ifndef __CYGWIN__
int ch;
+#endif
fprintf(stderr, "\n%s %s: %s\n\n", PROGNAME, VERSION, appname);
readpng2_version_info();
@@ -432,16 +460,23 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
" -timing\tenables delay for every block read, to simulate modem\n"
"\t\t download of image (~36 Kbps)\n"
"\nPress Q, Esc or mouse button 1 after image is displayed to quit.\n"
+#ifndef __CYGWIN__
"Press Q or Esc to quit this usage screen. ",
+#else
+ ,
+#endif
PROGNAME,
-#if (defined(__i386__) || defined(_M_IX86) || defined(__x86_64__))
+#if (defined(__i386__) || defined(_M_IX86) || defined(__x86_64__)) && \
+ !(defined(__CYGWIN__) || defined(__MINGW32__))
(int)strlen(PROGNAME), " ",
#endif
(int)strlen(PROGNAME), " ", default_display_exponent, num_bgpat);
fflush(stderr);
+#ifndef __CYGWIN__
do
ch = _getch();
while (ch != 'q' && ch != 'Q' && ch != 0x1B);
+#endif
exit(1);
}
@@ -478,18 +513,24 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
if (error) {
+#ifndef __CYGWIN__
int ch;
+#endif
fprintf(stderr, PROGNAME ": aborting.\n");
+#ifndef __CYGWIN__
do
ch = _getch();
while (ch != 'q' && ch != 'Q' && ch != 0x1B);
+#endif
exit(2);
} else {
fprintf(stderr, "\n%s %s: %s\n", PROGNAME, VERSION, appname);
+#ifndef __CYGWIN__
fprintf(stderr,
"\n [console window: closing this window will terminate %s]\n\n",
PROGNAME);
+#endif
fflush(stderr);
}
@@ -1132,7 +1173,12 @@ static void rpng2_win_finish_display()
rpng2_info.state = kDone;
printf(
- "Done. Press Q, Esc or mouse button 1 (within image window) to quit.\n");
+#ifndef __CYGWIN__
+ "Done. Press Q, Esc or mouse button 1 (within image window) to quit.\n"
+#else
+ "Done. Press mouse button 1 (within image window) to quit.\n"
+#endif
+ );
fflush(stdout);
}