On 21-Jan-99 Fred Hucht wrote:

>2) Lines like
>[lyx.C:15]
>FD_form_title *fdui = (FD_form_title *) fl_calloc(1, sizeof(*fdui));
>gives the warning from AIX's xlC
>"lyx.C", line 15.64: 1540-101: (W) "fdui" may be used before being set.

This should be 

FD_form_title *fdui = (FD_form_title *) fl_calloc(1, sizeof(FD_form_title));

to keep xLC (and other equally picky compilers) from complaining.  As
Jean-Marc said, xforms does this automatically.  I'm attaching a new
version of fdfix.sh that uses sed (awkwardly, I think) to make this
change.  The patch for this one would be nearly as long as the file,
including the comments I added about the cryptic sed commands that I
added. 

Also, I got a compiler warning in menus.C about bool LinuxDoc not being
used (in ShowInsertMenu).  The following micropatch fixes this:

--- menus.C.old Sat Jan 16 13:01:16 1999
+++ menus.C     Thu Jan 21 10:53:20 1999
@@ -1115,10 +1115,12 @@
  
        Buffer *tmpbuffer = men->_view->currentBuffer();
        LyXFunc *tmpfunc = men->_view->getLyXFunc();
 
+#if 0 // No longer used
        // Is textclass LinuxDoc?
        bool LinuxDoc = tmpbuffer->isLinuxDoc();
+#endif
 
        int SubInsertAscii = fl_defpup(FL_ObjWin(ob),
                                       _("Import ASCII file%t"
                                       "|As Lines%x41"

Note that the "#if 0" matches stylistically with the way that the uses
of LinuxDoc later in the same function are currently handled.  To remove
all of the (now unnecessary) special-case handling for LinuxDoc for this
menu, instead apply the following (slightly larger) patch.

--- menus.C.old Sat Jan 16 13:01:16 1999
+++ menus.C     Thu Jan 21 11:06:09 1999
@@ -1115,11 +1115,8 @@
  
        Buffer *tmpbuffer = men->_view->currentBuffer();
        LyXFunc *tmpfunc = men->_view->getLyXFunc();
 
-       // Is textclass LinuxDoc?
-       bool LinuxDoc = tmpbuffer->isLinuxDoc();
-
        int SubInsertAscii = fl_defpup(FL_ObjWin(ob),
                                       _("Import ASCII file%t"
                                       "|As Lines%x41"
                                       "|As Paragraphs%x42"));
@@ -1220,30 +1217,18 @@
        fl_setpup_shortcut(InsertMenu, 14, scex(_("IM|iI#i#I")));
        fl_setpup_shortcut(InsertMenu, 15, scex(_("IM|dD#d#D")));
        fl_setpup_shortcut(InsertMenu, 16, scex(_("IM|wW#w#W")));
 
-#if 0
-       if (LinuxDoc) {
-               /* for linuxdoc sgml */
-#endif
-               fl_addtopup(InsertMenu, _("|URL"));
-               fl_setpup_shortcut(InsertMenu, 17, scex(_("IM|Uu#u#U")));
-               fl_addtopup(InsertMenu, _("|HTML URL"));
-               fl_setpup_shortcut(InsertMenu, 18, scex(_("IM|Hh#h#H")));
-#if 0
-       }      
-#endif
+       fl_addtopup(InsertMenu, _("|URL"));
+       fl_setpup_shortcut(InsertMenu, 17, scex(_("IM|Uu#u#U")));
+       fl_addtopup(InsertMenu, _("|HTML URL"));
+       fl_setpup_shortcut(InsertMenu, 18, scex(_("IM|Hh#h#H")));
+
        if (tmpbuffer->isReadonly()) {
                 for (int ii = 1; ii <= 18; ii++)
                        fl_setpup_mode(InsertMenu, ii, FL_PUP_GREY);
-#if 0
-                if (LinuxDoc) {
-#endif
-                        fl_setpup_mode(InsertMenu, 17, FL_PUP_GREY);
-                        fl_setpup_mode(InsertMenu, 18, FL_PUP_GREY);
-#if 0
-                }
-#endif
        }
 
        fl_setpup_position(
                men->_view->getForm()->x + ob->x,



----------------------------------
Carl Ollivier-Gooch                                       [EMAIL PROTECTED]
Department of Mechanical Engineering                Voice: +1-604-822-1854
University of British Columbia                      Fax:   +1-604-822-2403
2324 Main Mall                           URL: http://www.mech.ubc.ca/~cfog
Vancouver, BC  V6T 1Z4 Canada
----------------------------------
#! /bin/sh

if [ "$1" = "$2" ]; then
    echo "Input and Output file can not be the same."
    exit 1
fi

if [ -f $2 ]; then
        echo "Output file already exists, overwrite?"
        read
        if [ "$REPLY" != "y" ]; then
            exit 0
        fi
fi

if [ ! -f $1 ]; then
    echo "Input file does not exist, can not continue"
    exit 1
fi

# If there is a patch for the outputfile patch the input file with it.
if [ -f "$2.patch" ]; then
    echo "Patching $1 with $2.patch"
    patch -s $1 < "$2.patch"
fi

echo "// File modified by fdfix.sh for use by lyx (with xforms 0.81) and gettext
" > $2
echo "#include <config.h>" >> $2
echo "#include \"lyx_gui_misc.h\"" >> $2
echo "#include \"gettext.h\"" >> $2
echo >> $2

# The commands to sed does this:
#
# -e 's/#include "forms\.h"/#include FORMS_H_LOCATION/'
#
#  Replace "forms.h" by FORMS_H_LOCATION in #include directives. This
#  macro is defined in config.h and is either <forms.h> or
#  <X11/forms.h>. 
#
# -e '/fl_/ s/".[^|]*"/_(&)/'
#  
#  For all lines containing "fl_" and a string _not_ containging |,
#  replace the string with _(string)
#
# -e '/shortcut/ s/".*[|].*"/scex(_(&))/'
#
#  For all lines containing "shortcut" and a string containing |, replace
#  the string with scex(_(string))
#
# -e '/fl_add/ s/".*[|].*"/idex(_(&))/'
#  For all lines containing "fl_add" and a string containing |, replace
#  the string with idex(_(string))
#
# -e '/fl_add/ s/idex("\(.*\)").*$/&fl_set_button_shortcut(obj,"\1",1);/'
# For all lines containing "fl_add" and a string containing |, add the
# shortcut command after the end of this line
#
# -e 's/fl_set_object_lcolor/fl_set_object_lcol/' 
#
#  For all lines replace "fl_set_object_lcolor" with "fl_set_object_lcol"
#  This will be removed when we don't support 0.81
#
# -e 's/fdui->.*->fdui = fdui/\/\/&/'
#
#  For all lines replace "fdui->...->fdui" with "//fdui->...->fdui"
#  This will be removed when we don't support 0.81
#
# -e '/\*fdui = / {' \
# -e   's/sizeof(\*fdui.*/sizeof(/' \
# -e   'h' \
# -e   's/ \*fdui = .*/));/' \
# -e   's/  //' \
# -e   'H' \
# -e   'g' \
# -e   's/\n//' \
# -e '}' \
#
#  Replace the braindead calls to sizeof(*fdui) (before fdui is assigned)
#  with a call using the actual type involved.  Probably the sed commands
#  used are needlessly complicated, but it replaces (for example) 
#  
#  FD_citation_form *fdui = (FD_citation_form *) fl_calloc(1, sizeof(*fdui));
#
#  with
#  
#  FD_citation_form *fdui = (FD_citation_form *) fl_calloc(1, sizeof(FD_citation
_form));
#
#  This fixes bitter complaints by some compilers.

cat $1 | sed \
-e 's/#include "forms\.h"/#include FORMS_H_LOCATION/' \
-e '/fl_/ s/".[^|]*"/_(&)/' \
-e '/shortcut/ s/".*[|].*"/scex(_(&))/' \
-e '/fl_add/ s/".*[|].*"/idex(_(&))/' \
-e '/fl_add/ s/idex(\(.*\)").*$/&fl_set_button_shortcut(obj,scex(\1")),1);/' \
-e 's/fl_set_object_lcolor/fl_set_object_lcol/' \
-e 's/fdui->.*->fdui = fdui/\/\/&/' \
-e '/\*fdui = / {' \
-e   's/sizeof(\*fdui.*/sizeof(/' \
-e   'h' \
-e   's/ \*fdui = .*/));/' \
-e   's/  //' \
-e   'H' \
-e   'g' \
-e   's/\n//' \
-e '}' \
>> $2

Reply via email to