diff lwlib/xlwmenu.c @ 404:2f8bb876ab1d r21-2-32

Import from CVS: tag r21-2-32
author cvs
date Mon, 13 Aug 2007 11:16:07 +0200
parents a86b2b5e0111
children de805c49cfc1
line wrap: on
line diff
--- a/lwlib/xlwmenu.c	Mon Aug 13 11:15:00 2007 +0200
+++ b/lwlib/xlwmenu.c	Mon Aug 13 11:16:07 2007 +0200
@@ -479,16 +479,26 @@
   Boolean firstp = True;
   while (*in)
     {
-      char ch = massaged_resource_char[(unsigned char) *in++];
-      if (ch)
+      if (*in == '%' && *(in + 1) == '_')
+	in += 2;
+      else
 	{
-	  int int_ch = (int) (unsigned char) ch;
-	  *out++ = firstp ? tolower (int_ch) : toupper (int_ch);
-	  firstp = False;
-	  while ((ch = massaged_resource_char[(unsigned char) *in++]) != '\0')
-	    *out++ = ch;
-	  if (!*(in-1))		/* Overshot the NULL byte? */
-	    break;
+	  char ch;
+
+	  if (*in == '%' && *(in + 1) == '%')
+	    in++;
+	  ch = massaged_resource_char[(unsigned char) *in++];
+	  if (ch)
+	    {
+	      int int_ch = (int) (unsigned char) ch;
+	      *out++ = firstp ? tolower (int_ch) : toupper (int_ch);
+	      firstp = False;
+	      while ((ch = massaged_resource_char[(unsigned char) *in++])
+		     != '\0')
+		*out++ = ch;
+	      if (!*(in-1))		/* Overshot the NULL byte? */
+		break;
+	    }
 	}
     }
   *out = 0;