Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(207)

Unified Diff: third_party/libjpeg_turbo/rdjpgcom.c

Issue 7554002: Updates libjpeg-turbo to 1.1.90 (r677) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/
Patch Set: '' Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/libjpeg_turbo/rdbmp.c ('k') | third_party/libjpeg_turbo/rdppm.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/libjpeg_turbo/rdjpgcom.c
===================================================================
--- third_party/libjpeg_turbo/rdjpgcom.c (revision 95020)
+++ third_party/libjpeg_turbo/rdjpgcom.c (working copy)
@@ -2,6 +2,7 @@
* rdjpgcom.c
*
* Copyright (C) 1994-1997, Thomas G. Lane.
+ * Modified 2009 by Bill Allombert, Guido Vollbeding.
* This file is part of the Independent JPEG Group's software.
* For conditions of distribution and use, see the accompanying README file.
*
@@ -14,6 +15,9 @@
#define JPEG_CJPEG_DJPEG /* to get the command-line config symbols */
#include "jinclude.h" /* get auto-config symbols, <stdio.h> */
+#ifdef HAVE_LOCALE_H
+#include <locale.h> /* Bill Allombert: use locale for isprint */
+#endif
#include <ctype.h> /* to declare isupper(), tolower() */
#ifdef USE_SETMODE
#include <fcntl.h> /* to declare setmode()'s parameter macros */
@@ -218,12 +222,17 @@
*/
static void
-process_COM (void)
+process_COM (int raw)
{
unsigned int length;
int ch;
int lastch = 0;
+ /* Bill Allombert: set locale properly for isprint */
+#ifdef HAVE_LOCALE_H
+ setlocale(LC_CTYPE, "");
+#endif
+
/* Get the marker parameter length count */
length = read_2_bytes();
/* Length includes itself, so must be at least 2 */
@@ -233,12 +242,14 @@
while (length > 0) {
ch = read_1_byte();
+ if (raw) {
+ putc(ch, stdout);
/* Emit the character in a readable form.
* Nonprintables are converted to \nnn form,
* while \ is converted to \\.
* Newlines in CR, CR/LF, or LF form will be printed as one newline.
*/
- if (ch == '\r') {
+ } else if (ch == '\r') {
printf("\n");
} else if (ch == '\n') {
if (lastch != '\r')
@@ -254,6 +265,11 @@
length--;
}
printf("\n");
+
+ /* Bill Allombert: revert to C locale */
+#ifdef HAVE_LOCALE_H
+ setlocale(LC_CTYPE, "C");
+#endif
}
@@ -321,7 +337,7 @@
*/
static int
-scan_JPEG_header (int verbose)
+scan_JPEG_header (int verbose, int raw)
{
int marker;
@@ -362,7 +378,7 @@
return marker;
case M_COM:
- process_COM();
+ process_COM(raw);
break;
case M_APP12:
@@ -371,7 +387,7 @@
*/
if (verbose) {
printf("APP12 contains:\n");
- process_COM();
+ process_COM(raw);
} else
skip_variable();
break;
@@ -398,6 +414,7 @@
fprintf(stderr, "Usage: %s [switches] [inputfile]\n", progname);
fprintf(stderr, "Switches (names may be abbreviated):\n");
+ fprintf(stderr, " -raw Display non-printable characters in comments (unsafe)\n");
fprintf(stderr, " -verbose Also display dimensions of JPEG image\n");
exit(EXIT_FAILURE);
@@ -438,7 +455,7 @@
{
int argn;
char * arg;
- int verbose = 0;
+ int verbose = 0, raw = 0;
/* On Mac, fetch a command line. */
#ifdef USE_CCOMMAND
@@ -457,6 +474,8 @@
arg++; /* advance over '-' */
if (keymatch(arg, "verbose", 1)) {
verbose++;
+ } else if (keymatch(arg, "raw", 1)) {
+ raw = 1;
} else
usage();
}
@@ -488,7 +507,7 @@
}
/* Scan the JPEG headers. */
- (void) scan_JPEG_header(verbose);
+ (void) scan_JPEG_header(verbose, raw);
/* All done. */
exit(EXIT_SUCCESS);
« no previous file with comments | « third_party/libjpeg_turbo/rdbmp.c ('k') | third_party/libjpeg_turbo/rdppm.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698