Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2012-05-17 06:18:41 +0400
committerChristopher Faylor <me@cgf.cx>2012-05-17 06:18:41 +0400
commitfe66a97ae47bfa1529fd3c2111a9351d85808894 (patch)
tree249d56621b130fe512eb6f885f8e3a45e7acb8e9
parent53b7c465ed504059aeb570d612fd98fd8565094f (diff)
* DevNotes: Add entry cgf-000009.
* smallprint.cc (__small_vsprintf): Always treat '%c' and '%C' as characters. Don't decode them if they are > 127. (__small_vswprintf): Ditto.
-rw-r--r--winsup/cygwin/ChangeLog7
-rw-r--r--winsup/cygwin/DevNotes18
-rw-r--r--winsup/cygwin/smallprint.cc33
3 files changed, 28 insertions, 30 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index f27762a39..a7fdb193f 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,10 @@
+2012-05-16 Christopher Faylor <me.cygwin2012@cgf.cx>
+
+ * DevNotes: Add entry cgf-000009.
+ * smallprint.cc (__small_vsprintf): Always treat '%c' and '%C' as
+ characters. Don't decode them if they are > 127.
+ (__small_vswprintf): Ditto.
+
2012-05-15 Christopher Faylor <me.cygwin2012@cgf.cx>
* DevNotes: Add entry cgf-000008.
diff --git a/winsup/cygwin/DevNotes b/winsup/cygwin/DevNotes
index da9cea13e..3b97e9e86 100644
--- a/winsup/cygwin/DevNotes
+++ b/winsup/cygwin/DevNotes
@@ -1,3 +1,21 @@
+2012-05-16 cgf-000009
+
+<1.7.16>
+- Fix broken console mouse handling. Reported here:
+ http://cygwin.com/ml/cygwin/2012-05/msg00360.html
+</1.7.16>
+
+I did a cvs annotate on smallprint.cc and see that the code to translate
+%characters > 127 to 0x notation was in the 1.1 revision. Then I
+checked the smallprint.c predecessor. It was in the 1.1 version of that
+program too, which means that this odd change has probably been around
+since <= 2000.
+
+Since __small_sprintf is supposed to emulate sprintf, I got rid of the
+special case handling. This may affect fhandler_socket::bind. If so, we
+should work around this problem there rather than keeping this strange
+hack in __small_printf.
+
2012-05-14 cgf-000008
<1.7.16>
diff --git a/winsup/cygwin/smallprint.cc b/winsup/cygwin/smallprint.cc
index 1ca7ca817..e7a9f530f 100644
--- a/winsup/cygwin/smallprint.cc
+++ b/winsup/cygwin/smallprint.cc
@@ -146,17 +146,7 @@ __small_vsprintf (char *dst, const char *fmt, va_list ap)
l_opt = true;
continue;
case 'c':
- {
- int c = va_arg (ap, int);
- if (c > ' ' && c <= 127)
- *dst++ = c;
- else
- {
- *dst++ = '0';
- *dst++ = 'x';
- dst = __rn (dst, 16, 0, c, len, pad, LMASK);
- }
- }
+ *dst++ = (char) (va_arg (ap, int) & 0xff);
break;
case 'C':
{
@@ -164,14 +154,7 @@ __small_vsprintf (char *dst, const char *fmt, va_list ap)
char buf[4], *c;
sys_wcstombs (buf, 4, &wc, 1);
for (c = buf; *c; ++c)
- if (isprint (*c))
- *dst++ = *c;
- else
- {
- *dst++ = '0';
- *dst++ = 'x';
- dst = __rn (dst, 16, 0, *c, len, pad, LMASK);
- }
+ *dst++ = *c;
}
case 'E':
strcpy (dst, "Win32 error ");
@@ -445,17 +428,7 @@ __small_vswprintf (PWCHAR dst, const WCHAR *fmt, va_list ap)
continue;
case L'c':
case L'C':
- {
- unsigned int c = va_arg (ap, unsigned int);
- if (c > L' ' && c <= 127)
- *dst++ = c;
- else
- {
- *dst++ = L'0';
- *dst++ = L'x';
- dst = __wrn (dst, 16, 0, c, len, pad, LMASK);
- }
- }
+ *dst++ = va_arg (ap, unsigned);
break;
case L'E':
wcscpy (dst, L"Win32 error ");