]> git.lyx.org Git - features.git/commitdiff
Fix for dicument popup update bug; fix for purify ABR report.
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Fri, 28 Jan 2000 11:50:57 +0000 (11:50 +0000)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Fri, 28 Jan 2000 11:50:57 +0000 (11:50 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@454 a592a061-630c-0410-9148-cb99ea01b6c8

ChangeLog
src/lyx_cb.C
src/lyxfont.C

index 46808356e9f940e33726a287439503339369cab4..bd351c8fcb8c8becf9df645eda8171f8849350bd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2000-01-28  Jean-Marc Lasgouttes  <Jean-Marc.Lasgouttes@inria.fr>
+
+       * src/lyxfont.C (textWidth): hopefully better fix for the Array
+       Bounds Read error seen by purify. The problem was that islower is
+       a macros which takes an unsigned char and uses it as an index for
+       in array of characters properties (and is thus subject to the
+       above error).
+       (drawText): ditto.
+
+       * src/lyx_cb.C (UpdateLayoutDocument): use a switch to set
+       correctly the paper sides radio buttons.
+       (UpdateDocumentButtons): ditto.
+
 2000-01-27  Jean-Marc Lasgouttes  <Jean-Marc.Lasgouttes@inria.fr>
 
        * src/lyxfunc.C (processKeyEvent): fix a the buffer returned by
index 97ec6567c932458277ad1274e844bf04b1b5032d..c3aade0dcb6f3c94dfe541359d84a6c8aceec6ee 100644 (file)
@@ -1884,10 +1884,14 @@ bool UpdateLayoutDocument(BufferParams * params)
        fl_set_button(fd_form_document->radio_sides_one, 0);
        fl_set_button(fd_form_document->radio_sides_two, 0);
    
-       if (params->sides == 2)
-               fl_set_button(fd_form_document->radio_sides_two, 1);
-       else
+       switch (params->sides) {
+       case LyXTextClass::OneSide:
                fl_set_button(fd_form_document->radio_sides_one, 1);
+               break;
+       case LyXTextClass::TwoSides:
+               fl_set_button(fd_form_document->radio_sides_two, 1);
+               break;
+       }
    
        fl_set_button(fd_form_document->radio_columns_one, 0);
        fl_set_button(fd_form_document->radio_columns_two, 0);
@@ -2791,12 +2795,16 @@ extern "C" void CharacterOKCB(FL_OBJECT *ob, long data)
 void UpdateDocumentButtons(BufferParams const & params) 
 {
        fl_set_choice(fd_form_document->choice_pagestyle, 1);
-       
-       if (params.sides == 2)
-               fl_set_button(fd_form_document->radio_sides_two, 1);
-       else
+
+       switch (params.sides) {
+       case LyXTextClass::OneSide:
                fl_set_button(fd_form_document->radio_sides_one, 1);
-       
+               break;
+       case LyXTextClass::TwoSides:
+               fl_set_button(fd_form_document->radio_sides_two, 1);
+               break;
+       }
+   
        if (params.columns == 2)
                fl_set_button(fd_form_document->radio_columns_two, 1);
        else
index 1b991eba7f9ce3f67ade1dbd953c435808db6b3c..c51edfc9079c2cb4aa6f8e51eb57bfb1eed5305e 100644 (file)
@@ -879,18 +879,19 @@ int LyXFont::textWidth(char const * s, int n) const
        } else {
                // emulate smallcaps since X doesn't support this
                unsigned int result = 0;
-               char c[2]; c[1] = '\0';
+               char c;
                LyXFont smallfont = *this;
                smallfont.decSize();
                smallfont.decSize();
                smallfont.setShape(LyXFont::UP_SHAPE);
                for (int i = 0; i < n; ++i) {
-                       c[0] = s[i];
-                       if (islower(c[0])){
-                               c[0] = toupper(c[0]);
-                               result += XTextWidth(smallfont.getXFontstruct(), c, 1);
+                       c = s[i];
+                       // when islower is a macro, the cast is needed (JMarc)
+                       if (islower(static_cast<unsigned char>(c))){
+                               c = toupper(c);
+                               result += XTextWidth(smallfont.getXFontstruct(), &c, 1);
                        } else {
-                               result += XTextWidth(getXFontstruct(), c, 1);
+                               result += XTextWidth(getXFontstruct(), &c, 1);
                        }
                }
                return result;
@@ -937,7 +938,7 @@ int LyXFont::drawText(char const * s, int n, Pixmap pm,
                smallfont.setShape(LyXFont::UP_SHAPE);
                for (int i = 0; i < n; ++i) {
                        c = s[i];
-                       if (islower(c)){
+                       if (islower(static_cast<unsigned char>(c))){
                                c = toupper(c);
                                XDrawString(fl_display,
                                            pm,