Hi all, - make damn sure even GUI (l)users notice a "missing xmessage" problem by checking for tons of X11 editors - replace duplicated (3x) code with function launch_winesetup() - *much* improved "winesetup not found" error message - break looping (via code 127) in case no xmessage installed - stress the fact that people should remember that they can regain certain settings by deleting flag files - spelling fixes I also mentioned www.codeweavers.com as potential download address for winesetup. If this isn't a good idea, then just remove this phrase. -- Andreas Mohr Stauferstr. 6, D-71272 Renningen, Germany
Determining best CVS host... Using CVSROOT :pserver:cvs@rhlx01.fht-esslingen.de:/home/wine Index: programs/winelauncher.in =================================================================== RCS file: /home/wine/wine/programs/winelauncher.in,v retrieving revision 1.1 diff -u -r1.1 winelauncher.in --- programs/winelauncher.in 14 Jun 2002 23:48:28 -0000 1.1 +++ programs/winelauncher.in 4 Jul 2002 21:52:05 -0000 @@ -57,23 +57,64 @@ #------------------------------------------------------------------------------ type xmessage >/dev/null 2>/dev/null if [ $? -ne 0 ] ; then - echo " + # xmessage not found; make sure the user notices this error + # (GUI users wouldn't even notice if we printed the text on console !) + MSGFILE=/tmp/WINE_CANNOT_FIND_XMESSAGE + cat > $MSGFILE << EOF Warning: - The Wine launcher is unable to find xmessage. - - This launcher script relies heavily on finding this tool, - and without it, it will behave poorly. - - Most Linux distributions have one or the other of these - tools. - - We strongly recommend that you use your distribution's - software methods to locate xmessage." + The Wine launcher is unable to find the xmessage program, + which it needs to properly notify you of Wine execution status + or problems. + + This launcher script relies heavily on finding this tool, + and without it, it will behave very poorly. + + We strongly recommend that you use your distribution's + software methods to locate xmessage, or alternatively + use your favourite internet search engine to find out + how you are supposed to install xmessage on your system. +EOF + + # try to display message file with tons of different X11 editors + # until we find one that's installed and working + for EDITPRG in nedit gedit kedit gvim xemacs; do + type $EDITPRG >/dev/null 2>/dev/null + if [ $? -eq 0 ] ; then + # execute editor and exit if successful + $EDITPRG $MSGFILE && exit + fi + done + # ok, we really give up now, this system is hosed ;-) + cat $MSGFILE else XMESSAGE="xmessage $COLOR" fi +launch_winesetup() +{ + which winesetup + if [ $? -eq 0 ] ; then + winesetup + else + if [ -x /opt/wine/bin/winesetup ] ; then + /opt/wine/bin/winesetup + else + $XMESSAGE -title "Error" \ + "Error: Unable to find winesetup in your PATH or in /opt/wine/bin: + I am not able to configure Wine. + + If winesetup is being distributed in a separate package + that is not installed yet on your system, then please install this + package. + winesetup can also be downloaded from www.codeweavers.com. + + If you choose to not use winesetup for configuration, then + you can find information on how to prepare a Wine config file manually + in the Wine README / README.gz file or in the Wine User Guide." + fi + fi +} #------------------------------------------------------------------------------ # We're going to do a lot of fancy footwork below. @@ -212,12 +253,13 @@ You have started Wine without specifying any arguments. - Wine requires a least one argument - the name of the Windows + Wine requires at least one argument - the name of the Windows application you would like to run. - If you have launched this through the KDE menu system, - you can use the KDE file browser to select a Windows - exectuable and then click on it to launch Wine with + If you have launched this through the KDE menu system + and your KDE installation is specially configured for Wine, + then you can use the KDE file browser to select a Windows + executable and then click on it to launch Wine with that application. You can similarly use the GNOME file manager to @@ -233,16 +275,7 @@ fi if [ $welcome_rc -eq 2 ] ; then - which winesetup - if [ $? -eq 0 ] ; then - winesetup - else - if [ -x /opt/wine/bin/winesetup ] ; then - /opt/wine/bin/winesetup - else - $XMESSAGE -title "Error" "Error: Unable to find winesetup in your PATH or in /opt/wine/bin" - fi - fi + launch_winesetup exit fi @@ -276,7 +309,7 @@ -title "Welcome to Wine" \ " - You have started Wine but we cannot find a Wine + You have started Wine, but we cannot find a Wine configuration file. This is normal if you have never run Wine before. @@ -294,16 +327,12 @@ fi if [ $init_rc -eq 2 ] ; then - which winesetup - if [ $? -eq 0 ] ; then - winesetup - else - if [ -x /opt/wine/bin/winesetup ] ; then - /opt/wine/bin/winesetup - else - $XMESSAGE -title "Error" "Error: Unable to find winesetup in your PATH or in /opt/wine/bin" - fi - fi + launch_winesetup + fi + + # 127 == xmessage not available + if [ $init_rc -eq 127 ] ; then + exit fi done @@ -320,14 +349,16 @@ This dialog box is a temporary status dialog to let you know that Wine is attempting to launch your application. - Since Wine is still very much in a development stage, many - applications will fail silently. This dialog box is your indication + Since Wine is still very much in a development stage, + many applications will fail silently. + This dialog box is your indication that we're *trying* to run your application. This dialog box will automatically disappear after 30 seconds, or after your application finishes. - You can permanently disable this dialog by selecting the option below. + You can permanently disable this dialog by selecting + the option below. " & info_message_pid=$! fi @@ -356,11 +387,12 @@ #------------------------------------------------------------------------------ if [ $info_return -eq 3 ] ; then $XMESSAGE -title "Wine Prelaunch Control" \ - "Wine will now disable the prelaunch Window you just saw. + "Wine will now disable the prelaunch window you just saw. You will no longer be notified when Wine is attempting to start a Windows application. - You can reenable this Window by removing the $info_flag file." -buttons " Okay ":0," Cancel ":1 + Please take note that you can reenable this window + by removing the $info_flag file." -buttons " Okay ":0," Cancel ":1 if [ $? -eq 0 ] ; then touch $info_flag fi @@ -486,16 +518,7 @@ # Process a configure instruction #------------------------------------------------------------------------------ if [ $debug_return -eq 4 ] ; then - which winesetup - if [ $? -eq 0 ] ; then - winesetup - else - if [ -x /opt/wine/bin/winesetup ] ; then - /opt/wine/bin/winesetup - else - $XMESSAGE -title "Error" "Error: Unable to find winesetup in your PATH or in /opt/wine/bin" - fi - fi + launch_winesetup continue; fi @@ -522,7 +545,8 @@ You will no longer be notified when Wine fails to start a Windows application. - You can reenable this Window by removing the $debug_flag file." -buttons " Okay ":0," Cancel ":1 + Please take note that you can reenable this window + by removing the $debug_flag file." -buttons " Okay ":0," Cancel ":1 if [ $? -eq 0 ] ; then touch $debug_flag