+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
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);
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
} 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;
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,