lynx-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

lynx-dev Re: Japanese/LYRawMode & forms-options menu -> FIXED


From: Leonid Pauzner
Subject: lynx-dev Re: Japanese/LYRawMode & forms-options menu -> FIXED
Date: Fri, 16 Oct 1998 19:01:44 +0400 (MSD)

OK, it was my bug.

In forms-options menu, assume_char_set now works correctly for any LYRawMode
value by sinchronizing gen_options() and postoptions() via rawmode memory.



diff -u old/lyoption.c ./lyoption.c
--- old/lyoption.c      Thu Oct 15 18:23:46 1998
+++ ./lyoption.c        Fri Oct 16 18:39:58 1998
@@ -3422,8 +3422,8 @@
     PostPair *data = 0;
     int i;
     BOOLEAN save_all = FALSE;
-    BOOLEAN display_char_set_changed = FALSE;
-    BOOLEAN raw_mode_changed = FALSE;
+    int display_char_set_old = current_char_set;
+    BOOLEAN raw_mode_old = LYRawMode;
     BOOLEAN assume_char_set_changed = FALSE;
     BOOLEAN need_reload = FALSE;
 #if defined(USE_SLANG) || defined(COLOR_CURSES)
@@ -3599,7 +3599,11 @@
            int newval;

            newval = UCGetLYhndl_byMIME(data[i].value);
-           if (newval != UCLYhndl_for_unspec) {
+           if ((raw_mode_old &&
+                       newval != safeUCGetLYhndl_byMIME(UCAssume_MIMEcharset))
+               || (!raw_mode_old &&
+                       newval != UCLYhndl_for_unspec)) {
+
                UCLYhndl_for_unspec = newval;
                StrAllocCopy(UCAssume_MIMEcharset, data[i].value);
                assume_char_set_changed = TRUE;
@@ -3613,7 +3617,6 @@
            newval = atoi(data[i].value);
            if (newval != current_char_set) {
                current_char_set = newval;
-               display_char_set_changed = TRUE;
            }
        }

@@ -3623,7 +3626,6 @@

            if (newmode != LYRawMode) {
                LYRawMode = newmode;
-               raw_mode_changed = TRUE;
            }
        }

@@ -3677,11 +3679,13 @@
     /*
      * Process the flags:
      */
-     if ( display_char_set_changed || raw_mode_changed || 
assume_char_set_changed ) {
+     if ( display_char_set_old != current_char_set ||
+               raw_mode_old != LYRawMode ||
+               assume_char_set_changed ) {
        /*
         * charset settings: the order is essential here.
         */
-       if (display_char_set_changed) {
+       if (display_char_set_old != current_char_set) {
                /*
                 *  Set the LYUseDefaultRawMode value and character
                 *  handling if LYRawMode was changed. - FM
@@ -3692,7 +3696,7 @@
        if (assume_char_set_changed) {
                LYRawMode = (UCLYhndl_for_unspec == current_char_set);
            }
-       if (raw_mode_changed || assume_char_set_changed) {
+       if (raw_mode_old != LYRawMode || assume_char_set_changed) {
                /*
                 *  Set the raw 8-bit or CJK mode defaults and
                 *  character set if changed. - FM
@@ -3999,11 +4003,9 @@
      * string that was displayed.  Now, user will never see that.  Good
      * or bad?  I don't know.  MRC
      */
-       if (curval == current_char_set && UCAssume_MIMEcharset) {
-           curval = UCGetLYhndl_byMIME(UCAssume_MIMEcharset);
-       }
-       if (curval < 0) {
-           curval = LYRawMode ? current_char_set : 0;
+       if (curval == current_char_set) {
+           /* ok, LYRawMode, so use UCAssume_MIMEcharset */
+           curval = safeUCGetLYhndl_byMIME(UCAssume_MIMEcharset);
        }
        PutLabel(fp0, "Assumed document character set");
        BeginSelect(fp0, assume_char_set_string);
diff -u old/html.c ./html.c
--- old/html.c  Thu Oct 15 18:23:40 1998
+++ ./html.c    Fri Oct 16 00:17:58 1998
@@ -4458,7 +4458,7 @@

                if (I.type && !strcasecomp(I.type, "hidden")) {
                    me->HiddenValue = TRUE;
-                   current_char_set = 0;       /* Default ISO-Latin1 */
+                   current_char_set = LATIN1;  /* Default ISO-Latin1 */
                    LYUseDefaultRawMode = TRUE;
                    HTMLSetCharacterHandling(current_char_set);
                }


reply via email to

[Prev in Thread] Current Thread [Next in Thread]