Hello community, here is the log from the commit of package sax2 checked in at Fri Mar 7 23:18:32 CET 2008. -------- --- sax2/sax2.changes 2008-03-04 11:41:22.000000000 +0100 +++ sax2/sax2.changes 2008-03-07 18:03:52.767424000 +0100 @@ -1,0 +2,18 @@ +Fri Mar 7 17:58:44 CET 2008 - ms@suse.de + +- fixed libsax::addItem() function (bnc #351627) + +------------------------------------------------------------------- +Fri Mar 7 12:22:19 CET 2008 - ms@suse.de + +- added setup of PreferredMode option in Monitor section + +------------------------------------------------------------------- +Thu Mar 6 09:28:56 CET 2008 - ms@suse.de + +- changed xtest to call icewem with -t yast2 +- fixed qx.c to use sprintf in a correct way (bnc #351627) +- fixed Profile.pm to detect if there is no DDC2 data (bnc #351627) +- update hwinfo source + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ sax2.spec ++++++ --- /var/tmp/diff_new_pack.Ey1977/_old 2008-03-07 23:17:45.000000000 +0100 +++ /var/tmp/diff_new_pack.Ey1977/_new 2008-03-07 23:17:45.000000000 +0100 @@ -40,7 +40,7 @@ PreReq: /bin/rm /bin/mkdir /usr/bin/chroot %fillup_prereq %insserv_prereq Summary: SuSE advanced X Window System-configuration Version: 8.1 -Release: 370 +Release: 372 Group: System/X11/Utilities License: GPL v2 or later Source: sax2.tar.bz2 @@ -454,6 +454,15 @@ %endif %changelog +* Fri Mar 07 2008 ms@suse.de +- fixed libsax::addItem() function (bnc #351627) +* Fri Mar 07 2008 ms@suse.de +- added setup of PreferredMode option in Monitor section +* Thu Mar 06 2008 ms@suse.de +- changed xtest to call icewem with -t yast2 +- fixed qx.c to use sprintf in a correct way (bnc #351627) +- fixed Profile.pm to detect if there is no DDC2 data (bnc #351627) +- update hwinfo source * Tue Mar 04 2008 ms@suse.de - added vboxmouse profile on 0x80ee/0x0100 (bnc #358460) - added vmware mouse profile on 0x15ad/0x0100 (bnc #358460) ++++++ sax2.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/api/monitor/monitordisplay.cpp new/sax/api/monitor/monitordisplay.cpp --- old/sax/api/monitor/monitordisplay.cpp 2008-02-08 20:29:51.000000000 +0100 +++ new/sax/api/monitor/monitordisplay.cpp 2008-03-07 17:46:35.000000000 +0100 @@ -836,7 +836,7 @@ if (! combinedSize) { getMonitorData() -> setDisplaySize ( combined ); } else { - if (desktop->getItem(QString("Size[2]")).isNull()) + if (desktop->getItem(QString("Size[2]")).isNull()) { log (L_WARN,"SCCMonitorDisplay::No DDC2 size info available\n"); return; } @@ -865,7 +865,7 @@ QTextOStream (xs) << x; combined.append (*xs); QTextOStream (ys) << y; combined.append (*ys); getMonitorData() -> setDisplaySize ( combined ); - + } if ((mShowDisplaySizeMessage) && (isVisible())) { SCCWrapPointer< Q3Dict<QString> > mText (mTextPtr); SCCMessage* mMessageBox = new SCCMessage ( diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/api/monitor.cpp new/sax/api/monitor.cpp --- old/sax/api/monitor.cpp 2008-02-06 09:26:17.000000000 +0100 +++ new/sax/api/monitor.cpp 2008-03-07 12:11:25.000000000 +0100 @@ -1167,11 +1167,10 @@ saxDesktop.enable3D(); } //==================================== - // save default color depth + // save default color and pref mode //------------------------------------ card = 0; foreach (display, mMonitorDisplay) { - //SCCMonitorDisplay* display = (SCCMonitorDisplay*)it.current(); SaXManipulateDesktop saxDesktop ( mSection["Desktop"],mSection["Card"],mSection["Path"] ); @@ -1182,6 +1181,9 @@ saxCard.selectCard ( card ); if (saxCard.getCardDriver() != "fbdev") { saxDesktop.setColorDepth ( display->getColorDepth() ); + saxDesktop.setPreferredMode ( + display->getResolution().at(0) + ); } card++; } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/libsax/desktop.cpp new/sax/libsax/desktop.cpp --- old/sax/libsax/desktop.cpp 2008-02-08 20:29:50.000000000 +0100 +++ new/sax/libsax/desktop.cpp 2008-03-07 12:11:23.000000000 +0100 @@ -818,6 +818,20 @@ } //==================================== +// setPreferredMode +//------------------------------------ +void SaXManipulateDesktop::setPreferredMode (const QString& mode) { + // .../ + //! set the PreferredMode which is required because randr12 + //! based drivers will ignore any Modes setup, great + // ---- + if ((! mDesktop) || (! mCard) || (! mPath)) { + return; + } + mDesktop -> setItem ( "PreferredMode",mode); +} + +//==================================== // enableDPMS //------------------------------------ void SaXManipulateDesktop::enableDPMS (void) { diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/libsax/desktop.h new/sax/libsax/desktop.h --- old/sax/libsax/desktop.h 2008-01-24 13:01:13.000000000 +0100 +++ new/sax/libsax/desktop.h 2008-03-07 12:11:23.000000000 +0100 @@ -71,6 +71,7 @@ virtual void setDisplayRatioAndTraversal ( double ,int, int ) = 0; virtual void setHsyncRange ( double,double ) = 0; virtual void setVsyncRange ( double,double ) = 0; + virtual void setPreferredMode ( const QString& ) = 0; virtual void enableDPMS ( void ) = 0; virtual void disableDPMS ( void ) = 0; virtual void setMonitorVendor ( const QString& ) = 0; @@ -215,6 +216,7 @@ void setDisplayRatioAndTraversal ( double ,int, int ); void setHsyncRange ( double,double ); void setVsyncRange ( double,double ); + void setPreferredMode ( const QString& ); void enableDPMS ( void ); void disableDPMS ( void ); void setMonitorVendor ( const QString& ); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/libsax/storage.cpp new/sax/libsax/storage.cpp --- old/sax/libsax/storage.cpp 2008-01-31 17:50:45.000000000 +0100 +++ new/sax/libsax/storage.cpp 2008-03-07 17:46:33.000000000 +0100 @@ -167,7 +167,7 @@ if ((currentValue) && (! currentValue->isEmpty())) { QString newValue; QString newOptVal (optname+" "+optval); - QTextOStream(&newValue) << currentValue << "," << newOptVal; + QTextOStream(&newValue) << *currentValue << "," << newOptVal; newValue.replace (QRegExp("^,"),""); setItem (key,newValue); } else { @@ -195,7 +195,7 @@ } QString* currentValue = mData.at (mCurrentID) -> take (key); if (currentValue) { - QStringList optlist = QStringList::split ( expression, *currentValue ); + QStringList optlist = QStringList::split ( expression, *currentValue ); QStringList result; for ( QStringList::Iterator in = optlist.begin(); in != optlist.end(); ++in @@ -407,7 +407,7 @@ // .../ //! return a pointer to the data dictionary at ID (id) // ---- - return mData.at (id); + return mData.at (id); } //==================================== @@ -417,7 +417,7 @@ // .../ //! return a pointer to the data dictionary at the current ID // ---- - return mData.at (mCurrentID); + return mData.at (mCurrentID); } //==================================== @@ -458,8 +458,7 @@ if ( ! mCDB[group] ) { mCDB.insert (group, new Q3Dict<QString>); } - mCDB[group]->insert (key,new QString(value)); - + mCDB[group]->insert (key,new QString(value)); } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/modules/create/monitor.pm new/sax/modules/create/monitor.pm --- old/sax/modules/create/monitor.pm 2007-08-13 14:57:44.000000000 +0200 +++ new/sax/modules/create/monitor.pm 2008-03-07 12:11:25.000000000 +0100 @@ -105,6 +105,17 @@ last SWITCH; }; #=========================================== + # PreferredMode... + #------------------------------------------- + /^PreferredMode/ && do { + foreach $n (@list) { + if ($n ne "") { + push(@result,PrintLine("Option","\"$i\" \"$n\"")); + } + } + last SWITCH; + }; + #=========================================== # default setting... #------------------------------------------- foreach $n (@list) { diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/modules/ImportAPI.pm new/sax/modules/ImportAPI.pm --- old/sax/modules/ImportAPI.pm 2007-12-06 16:06:15.000000000 +0100 +++ new/sax/modules/ImportAPI.pm 2008-03-07 12:11:25.000000000 +0100 @@ -1059,6 +1059,12 @@ last SWITCH; }; + /^PreferredMode/ && do { + if ($value ne "") { + $var{Monitor}{$card}{PreferredMode} = $value; + } + }; + /^CalcAlgorithm/ && do { $var{Monitor}{$card}{CalcAlgorithm} = $value; if ($value =~ /CheckDesktopGeometry/i) { diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/profile/manual/IntelNext_DualHead_DriverOptions new/sax/profile/manual/IntelNext_DualHead_DriverOptions --- old/sax/profile/manual/IntelNext_DualHead_DriverOptions 2007-08-13 14:57:43.000000000 +0200 +++ new/sax/profile/manual/IntelNext_DualHead_DriverOptions 2008-03-07 12:11:24.000000000 +0100 @@ -12,6 +12,8 @@ Device -> [X] -> Option = SaXDualHead +Monitor -> [X] -> PreferredMode = ${Modes[0]} + Device -> [X] -> Raw -> 21 -> Option = "SaXDualMode" "Clone" Device -> [X] -> Raw -> 22 -> Option = "SaXDualOrientation" "LeftOf" Device -> [X] -> Raw -> 23 -> Option = "SaXDualHSync" "${Hsync}" diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/profile/manual/NVidia_DualHead_DriverOptions new/sax/profile/manual/NVidia_DualHead_DriverOptions --- old/sax/profile/manual/NVidia_DualHead_DriverOptions 2006-12-13 16:07:02.000000000 +0100 +++ new/sax/profile/manual/NVidia_DualHead_DriverOptions 2008-03-07 12:11:24.000000000 +0100 @@ -23,6 +23,8 @@ Device -> [X] -> Option = TwinView,SaXDualHead +Monitor -> [X] -> PreferredMode = ${Modes[0]} + Device -> [X] -> Raw -> 11 -> Option = "TwinViewOrientation" "Clone" Device -> [X] -> Raw -> 12 -> Option = "ConnectedMonitor" "[MONITORLAYOUT]" Device -> [X] -> Raw -> 13 -> Option = "SaXDualOrientation" "RightOf" diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/profile/manual/RadeonHD_DualHead_DriverOptions new/sax/profile/manual/RadeonHD_DualHead_DriverOptions --- old/sax/profile/manual/RadeonHD_DualHead_DriverOptions 2008-01-28 10:54:01.000000000 +0100 +++ new/sax/profile/manual/RadeonHD_DualHead_DriverOptions 2008-03-07 12:11:24.000000000 +0100 @@ -12,6 +12,8 @@ Device -> [X] -> Option = SaXDualHead +Monitor -> [X] -> PreferredMode = ${Modes[0]} + Device -> [X] -> Raw -> 21 -> Option = "SaXDualMode" "Clone" Device -> [X] -> Raw -> 22 -> Option = "SaXDualOrientation" "LeftOf" Device -> [X] -> Raw -> 23 -> Option = "SaXDualHSync" "${Hsync}" diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/profile/script/Profile.pm new/sax/profile/script/Profile.pm --- old/sax/profile/script/Profile.pm 2008-01-28 10:54:01.000000000 +0100 +++ new/sax/profile/script/Profile.pm 2008-03-06 17:17:55.000000000 +0100 @@ -437,7 +437,7 @@ my $xstuff = new SaX::SaXImportSysp ($SaX::SYSP_DESKTOP); $xstuff->doImport(); my $ddc = $xstuff->getItem("DDC[2]"); - if (! defined $ddc) { + if ((! defined $ddc) || ($ddc eq "")) { return %result; } #===================================== diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/svnbuild new/sax/svnbuild --- old/sax/svnbuild 2008-03-04 11:41:46.000000000 +0100 +++ new/sax/svnbuild 2008-03-07 18:04:22.000000000 +0100 @@ -1 +1 @@ -1536 +1544 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/sysp/lib/common/qx.c new/sax/sysp/lib/common/qx.c --- old/sax/sysp/lib/common/qx.c 2007-06-22 14:12:35.000000000 +0200 +++ new/sax/sysp/lib/common/qx.c 2008-03-06 17:17:55.000000000 +0100 @@ -32,7 +32,8 @@ // Functions... //--------------------------------- char* qx(const char*command,int channel,int anz,const char* format,...) { - char data[30] = "/tmp/data"; + const char prefix[30] = "/tmp/data"; + char data[30] = ""; char *result = NULL; char *arg[anz+2]; va_list ap; @@ -51,7 +52,7 @@ //================================= // prepare data file... //--------------------------------- - sprintf(data,"%s-%d",data,getpid()); + sprintf(data,"%s-%d",prefix,getpid()); //================================= // get arguments... diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/sysp/lib/libhd/hd/bios.c new/sax/sysp/lib/libhd/hd/bios.c --- old/sax/sysp/lib/libhd/hd/bios.c 2008-03-04 09:31:47.000000000 +0100 +++ new/sax/sysp/lib/libhd/hd/bios.c 2008-03-07 17:46:34.000000000 +0100 @@ -947,6 +947,7 @@ for(sm = hd_data->smbios; sm; sm = sm->next) { if( sm->any.type == sm_sysinfo && + sm->sysinfo.product && !strcmp(sm->sysinfo.product, "VirtualBox") ) { hd_data->flags.vbox = 1; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/sysp/lib/libhd/hd/block.c new/sax/sysp/lib/libhd/hd/block.c --- old/sax/sysp/lib/libhd/hd/block.c 2007-09-07 09:42:42.000000000 +0200 +++ new/sax/sysp/lib/libhd/hd/block.c 2008-03-06 17:17:54.000000000 +0100 @@ -823,7 +823,7 @@ hd_report_this(hd_data, hd) && hd->unix_dev_name && hd->sub_class.id == sc_sdev_cdrom && - hd_data->in_vmware != 1 /* VMWare doesn't like it */ + !hd_data->flags.vmware /* VMWare doesn't like it */ ) { PROGRESS(5, 0, hd->unix_dev_name); fd = open(hd->unix_dev_name, O_RDONLY | O_NONBLOCK); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/sysp/lib/libhd/hd/hd.h new/sax/sysp/lib/libhd/hd/hd.h --- old/sax/sysp/lib/libhd/hd/hd.h 2008-03-04 09:31:47.000000000 +0100 +++ new/sax/sysp/lib/libhd/hd/hd.h 2008-03-06 17:17:54.000000000 +0100 @@ -2603,6 +2603,7 @@ unsigned nowpa:1; /**< no longer used */ unsigned pata:1; /**< use new libata modules instead of classical ide modules */ unsigned vbox:1; /**< running in virtual box */ + unsigned vmware:1; /**< running in vmware */ } flags; @@ -2651,7 +2652,6 @@ str_list_t *xtra_hd; /**< (Internal) fake hd entries (for testing) */ devtree_t *devtree; /**< (Internal) prom device tree on ppc */ unsigned kernel_version; /**< (Internal) kernel version */ - int in_vmware; /**< (Internal) running in vmware */ hd_t *manual; /**< (Internal) hardware config info */ str_list_t *disks; /**< (Internal) disks according to /proc/partitions */ str_list_t *partitions; /**< (Internal) dto, partitions */ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/sysp/lib/libhd/hd/int.c new/sax/sysp/lib/libhd/hd/int.c --- old/sax/sysp/lib/libhd/hd/int.c 2008-03-04 09:31:47.000000000 +0100 +++ new/sax/sysp/lib/libhd/hd/int.c 2008-03-06 17:17:54.000000000 +0100 @@ -715,20 +715,27 @@ } #endif - if(hd_data->flags.vbox) { + if(hd_data->flags.vbox || hd_data->flags.vmware) { for(hd = hd_data->hd; hd; hd = hd->next) { if( hd->base_class.id == bc_mouse && hd->sub_class.id == sc_mou_ps2 && - hd->vendor.id == 2 && - hd->device.id == 6 + hd->vendor.id == 2 ) { - hd->vendor.name = free_mem(hd->vendor.name); - hd->device.name = free_mem(hd->device.name); - hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x80ee); - hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0100); - - new_id(hd_data, hd); + if(hd_data->flags.vbox && hd->device.id == 6) { + hd->vendor.name = free_mem(hd->vendor.name); + hd->device.name = free_mem(hd->device.name); + hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x80ee); + hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0100); + new_id(hd_data, hd); + } + else if(hd_data->flags.vmware && hd->device.id == 5) { + hd->vendor.name = free_mem(hd->vendor.name); + hd->device.name = free_mem(hd->device.name); + hd->vendor.id = MAKE_ID(TAG_SPECIAL, 0x15ad); + hd->device.id = MAKE_ID(TAG_SPECIAL, 0x0100); + new_id(hd_data, hd); + } } } } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/sysp/lib/libhd/hd/net.c new/sax/sysp/lib/libhd/hd/net.c --- old/sax/sysp/lib/libhd/hd/net.c 2007-09-04 09:15:37.000000000 +0200 +++ new/sax/sysp/lib/libhd/hd/net.c 2008-03-06 17:17:54.000000000 +0100 @@ -50,7 +50,7 @@ unsigned u; int if_type, if_carrier; hd_t *hd, *hd_card; - char *s, *hw_addr; + char *s, *t, *hw_addr; hd_res_t *res, *res1, *res2; uint64_t ul0; str_list_t *sf_class, *sf_class_e; @@ -244,9 +244,22 @@ hd_card = NULL; if(sf_dev) { - hd->sysfs_device_link = new_str(hd_sysfs_id(sf_dev)); + s = new_str(hd_sysfs_id(sf_dev)); + + hd->sysfs_device_link = new_str(s); + + hd_card = hd_find_sysfs_id(hd_data, s); + + // try one above, if not found + if(!hd_card) { + t = strrchr(s, '/'); + if(t) { + *t = 0; + hd_card = hd_find_sysfs_id(hd_data, s); + } + } + s = free_mem(s); - hd_card = hd_find_sysfs_id(hd_data, hd_sysfs_id(sf_dev)); if(hd_card) { hd->attached_to = hd_card->idx; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/sysp/lib/libhd/hd/sys.c new/sax/sysp/lib/libhd/hd/sys.c --- old/sax/sysp/lib/libhd/hd/sys.c 2006-06-30 09:49:23.000000000 +0200 +++ new/sax/sysp/lib/libhd/hd/sys.c 2008-03-07 17:46:34.000000000 +0100 @@ -21,7 +21,7 @@ * @{ */ -#if defined(__i386__) +#if defined(__i386__) || defined(__x86_64__) static void sigsegv_handler(int signum); static void chk_vmware(hd_data_t *hd_data, sys_info_t *st); #endif @@ -113,7 +113,7 @@ chk_vaio(hd_data, st); #endif -#if defined(__i386__) +#if defined(__i386__) || defined(__x86_64__) chk_vmware(hd_data, st); #endif @@ -126,7 +126,7 @@ } } -#if defined(__i386__) +#if defined(__i386__) || defined(__x86_64__) void sigsegv_handler(int signum) { _exit(77); } void chk_vmware(hd_data_t *hd_data, sys_info_t *st) @@ -142,6 +142,7 @@ if(child == 0) { signal(SIGSEGV, sigsegv_handler); +#ifdef __i386__ asm( "push %ebx\n" "\tpush %edx\n" @@ -156,6 +157,22 @@ "\tpop %edx\n" "\tpop %ebx\n" ); +#else + asm( + "push %rbx\n" + "\tpush %rdx\n" + "\tpush %rax\n" + "\tpush %rcx\n" + "\tmov $0x564d5868,%eax\n" + "\tmov $0xa,%ecx\n" + "\tmov $0x5658,%edx\n" + "\tin (%dx),%eax\n" + "\tpop %rcx\n" + "\tpop %rax\n" + "\tpop %rdx\n" + "\tpop %rbx\n" + ); +#endif _exit(66); } @@ -174,10 +191,10 @@ st->model = new_str("VMWare"); } - hd_data->in_vmware = is_vmware; + hd_data->flags.vmware = is_vmware; } -#endif /* __i386__ */ +#endif /* __i386__ || __x86_64__ */ #if defined(__i386__) || defined(__x86_64__) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/sysp/lib/libhd/ids/src/special new/sax/sysp/lib/libhd/ids/src/special --- old/sax/sysp/lib/libhd/ids/src/special 2008-03-04 09:31:46.000000000 +0100 +++ new/sax/sysp/lib/libhd/ids/src/special 2008-03-06 17:17:53.000000000 +0100 @@ -676,6 +676,14 @@ &device.id special 0x0100 +device.name Mouse +# VMware things + vendor.id special 0x15ad ++vendor.name VMware + + vendor.id special 0x15ad +&device.id special 0x0100 ++device.name Mouse + # internal: special notebook packages # see int.c::int_system() vendor.id special 0xf001 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/sysp/lib/libhd/VERSION new/sax/sysp/lib/libhd/VERSION --- old/sax/sysp/lib/libhd/VERSION 2008-03-04 09:31:47.000000000 +0100 +++ new/sax/sysp/lib/libhd/VERSION 2008-03-07 17:46:34.000000000 +0100 @@ -1 +1 @@ -14.3 +14.6 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/sax/tools/xtest/xtest.c new/sax/tools/xtest/xtest.c --- old/sax/tools/xtest/xtest.c 2008-01-30 17:01:28.000000000 +0100 +++ new/sax/tools/xtest/xtest.c 2008-03-06 17:17:56.000000000 +0100 @@ -200,7 +200,7 @@ return (0); break; case 0: - execlp(ICEWM,"icewm","-c",ICEWMPREFS,NULL); + execlp(ICEWM,"icewm","-c",ICEWMPREFS,"-t","yast2",NULL); execlp(FVWM,"fvwm2","-f",FVWMRC,NULL); execlp(MWM,"mwm",NULL); execlp(TWM,"twm",NULL); ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org