Blame SOURCES/0001-Recognize-all-wide-unicode-characters.patch

eb9b35
From f646fa6ce15984b4a7d3c7b633be4129ad00c407 Mon Sep 17 00:00:00 2001
eb9b35
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
eb9b35
Date: Fri, 8 Mar 2013 13:00:52 +0100
eb9b35
Subject: [PATCH] Recognize all wide unicode characters
eb9b35
eb9b35
Type cast explicitly to (signed char) because sizof(char) can differ
eb9b35
from sizof(int). Also do not quote bytes above 0x7F because we assume
eb9b35
UTF-8 encoding.
eb9b35
eb9b35
This should be fixed properly by UTF-8 to Unicode decoding but we
eb9b35
need to recognize which encoding is in use before. How?
eb9b35
---
eb9b35
 emitter.c | 22 +++++++++++-----------
eb9b35
 syck.h    |  2 +-
eb9b35
 2 files changed, 12 insertions(+), 12 deletions(-)
eb9b35
eb9b35
diff --git a/emitter.c b/emitter.c
eb9b35
index 48141b3..1d1a609 100644
eb9b35
--- a/emitter.c
eb9b35
+++ b/emitter.c
eb9b35
@@ -16,9 +16,9 @@
eb9b35
 
eb9b35
 #define DEFAULT_ANCHOR_FORMAT "id%03d"
eb9b35
 
eb9b35
-const char hex_table[] = 
eb9b35
+const unsigned char hex_table[] = 
eb9b35
 "0123456789ABCDEF";
eb9b35
-static char b64_table[] =
eb9b35
+static unsigned char b64_table[] =
eb9b35
 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
eb9b35
 
eb9b35
 /*
eb9b35
@@ -598,12 +598,12 @@ syck_scan_scalar( int req_width, char *cursor, long len )
eb9b35
     /* scan string */
eb9b35
     for ( i = 0; i < len; i++ ) {
eb9b35
 
eb9b35
-        if ( ! ( (unsigned)cursor[i] == 0x9 ||
eb9b35
-                 (unsigned)cursor[i] == 0xA ||
eb9b35
-                 (unsigned)cursor[i] == 0xD ||
eb9b35
-               ( (unsigned)cursor[i] >= 0x20 && (unsigned)cursor[i] <= 0x7E ) ||
eb9b35
-                 (unsigned)cursor[i] == 0x85 ||
eb9b35
-                 (unsigned)cursor[i] >= 0xa0 )
eb9b35
+        if ( ! ( (unsigned char)cursor[i] == 0x9 ||
eb9b35
+                 (unsigned char)cursor[i] == 0xA ||
eb9b35
+                 (unsigned char)cursor[i] == 0xD ||
eb9b35
+               ( (unsigned char)cursor[i] >= 0x20 &&
eb9b35
+                 (unsigned char)cursor[i] <= 0x7E ) ||
eb9b35
+                 (unsigned char)cursor[i] >= 0x80 )
eb9b35
         ) {
eb9b35
             flags |= SCAN_NONPRINT;
eb9b35
         }
eb9b35
@@ -812,7 +812,7 @@ void syck_emit_scalar( SyckEmitter *e, char *tag, enum scalar_style force_style,
eb9b35
 }
eb9b35
 
eb9b35
 void
eb9b35
-syck_emitter_escape( SyckEmitter *e, char *src, long len )
eb9b35
+syck_emitter_escape( SyckEmitter *e, unsigned char *src, long len )
eb9b35
 {
eb9b35
     int i;
eb9b35
     for( i = 0; i < len; i++ )
eb9b35
@@ -927,7 +927,7 @@ void syck_emit_2quoted_1( SyckEmitter *e, int width, char *str, long len )
eb9b35
             break;
eb9b35
 
eb9b35
             default:
eb9b35
-                syck_emitter_escape( e, mark, 1 );
eb9b35
+                syck_emitter_escape( e, (unsigned char *)mark, 1 );
eb9b35
             break;
eb9b35
         }
eb9b35
         mark++;
eb9b35
@@ -990,7 +990,7 @@ void syck_emit_2quoted( SyckEmitter *e, int width, char *str, long len )
eb9b35
             break;
eb9b35
 
eb9b35
             default:
eb9b35
-                syck_emitter_escape( e, mark, 1 );
eb9b35
+                syck_emitter_escape( e, (unsigned char*)mark, 1 );
eb9b35
             break;
eb9b35
         }
eb9b35
         mark++;
eb9b35
diff --git a/syck.h b/syck.h
eb9b35
index 2886561..f5118cd 100644
eb9b35
--- a/syck.h
eb9b35
+++ b/syck.h
eb9b35
@@ -411,7 +411,7 @@ void syck_emitter_handler( SyckEmitter *, SyckEmitterHandler );
eb9b35
 void syck_free_emitter( SyckEmitter * );
eb9b35
 void syck_emitter_clear( SyckEmitter * );
eb9b35
 void syck_emitter_write( SyckEmitter *, const char *, long );
eb9b35
-void syck_emitter_escape( SyckEmitter *, char *, long );
eb9b35
+void syck_emitter_escape( SyckEmitter *, unsigned char *, long );
eb9b35
 void syck_emitter_flush( SyckEmitter *, long );
eb9b35
 void syck_emit( SyckEmitter *, st_data_t );
eb9b35
 void syck_emit_scalar( SyckEmitter *, char *, enum scalar_style, int, int, char, char *, long );
eb9b35
-- 
eb9b35
1.8.1.4
eb9b35