CVS domivogt: * Completely removed the old builtin command interface.

2002-09-11 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt02/09/11 04:45:25

Modified files:
.  : ChangeLog 
fvwm   : add_window.c builtins.c colorset.c 
 conditional.c events.c focus.c functions.c 
 fvwm.h icons.c menucmd.c module_interface.c 
 move_resize.c placement.c schedule.c stack.c 
 update.c virtual.c windowlist.c windowshade.c 

Log message:
* Completely removed the old builtin command interface.

--
Visit the official FVWM web page at URL:http://www.fvwm.org/.
To unsubscribe from the list, send unsubscribe fvwm-workers in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * Removed a temporary pre-execcontext function.

2002-09-11 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt02/09/11 05:23:58

Modified files:
fvwm   : move_resize.c 
libs   : FEvent.c FEvent.h 

Log message:
* Removed a temporary pre-execcontext function.

--
Visit the official FVWM web page at URL:http://www.fvwm.org/.
To unsubscribe from the list, send unsubscribe fvwm-workers in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


the new internal command execution interface

2002-09-11 Thread Dominik Vogt
First a word of warning:  although the sources compile again, the
work is by no means complete.  There are definitely a lot of nasty
bugs yet.

Now to the details.  I initially started this work to make fvwm
fully functional in the menu loop with the mid term goal of making
tear off menus behave like any other windows.  This required to
remove all the global variables that were used to pass vital
information about the execution context around (Event, Fw,
lastTimestamp and others).

The new code consits of three central parts:

 * An event handling wrapper library FEvent.[ch] which hides the
   X envent handling functions and stores some extra information.

 * A new module execcontext.[ch] that provides a structure that
   holds all information a builtin command or an event handler
   needs to know to do its job.

 * The new builtin command and event handler interface (formerly
   F_CMD_ARGS and (void)).

Basically, executing anything now works like this:

 * An action is triggered (by an X event, a module, the scheduler,
   or other sources like startup or garbage_collection).

 * Depending on the action's source, either execute_function() or
   dispatch_event() is called.

 * Both functions assemble an exec_context_t structure with the
   relevant execution information.  Note that this structure type
   is *read only* everywhere.  If any members have to be changed,
   the function exc_clone_context() must be called to create a
   (read only) copy with some values changed.

 * The structure (exc) is passed down into any function that needs
   to know something about the context of execution.  For event
   handlers, the structure is wrapped in another structure to
   allow extending the event handler interface without much effort
   in the future.

 * As a side effect, it's no longer possible to pass values up to
   the caller.  Any new code should try very hard to avoid this.

 * Thus, it is no longer possible to change members of the event
   structure.  To do this, build up a new event structure in local
   memory and call fev_fake_event, e.g.

 XEvent e = *exc-e.etrigger;
 e.xbutton.x = 0;
 e.xbutton.y = 0;
 few_fake_event(e);

   which is equivalent to the old way:

 Event.xbutton.x = 0;
 Event.xbutton.y = 0;

This is the structure's definition (refined for readability).

typedef struct
{
exec_context_type_t type;
struct
{
XEvent *etrigger;
XEvent *elast;
} x;
struct
{
FvwmWindow *fw;
Window w;
unsigned long wcontext;
} w;
struct
{
int modnum;
} m;
} exec_context_t;

 * type:  an enum that indicates the original source of the action,
   e.g. EXCT_EVENT or EXCT_MODULE.  I'm not sure this information
   is useful, so I may remove it.
 * x.etrigger:  a copy of the event that originally triggered the
   action.
 * x.elast:  always points to the latest event received from the
   X server.  At the beginning of execution, the contents of
   *e.last are always identical to the contents of *x.etrigger
   (although the pointers are different).
 * w.fw, w.w, w.wcontext:  the context FvwmWindow, Window, and
   context mask.
 * m.modnum:  the module number that caused the action or -1.

References:

  * FEvent.h for an overview of the event handling layer.
  * execcontext.h for the available exec_context_t handling
function.
  * functions.c (execute_function... functions) for the new
function execution interface including some convenience
functions.
  * conditionals.c for some examples.

Notes:

  * FEvent.h has an additional iterface that is only exported if
FEVENT_PRIVILEGED_ACCESS is defined when including it.  This
must be accessed *only* from execcontext.c.
  * DeferExecution is now called centrally in functions.c and
*must not* be called externally.

Hopefully I'll get most functionality running this evening.  Until
then, many, many things are broken.  If you feel like trying it
out (not recommended unless you're a developer) write down a list
of things that don't work, but please don't bother me with them
yet.  I'll announce when I think that public testing makes sense.

Bye

Dominik ^_^  ^_^

 --
Dominik Vogt, mail: [EMAIL PROTECTED], phone: 0721/91374-382
Schlund + Partner AG, Erbprinzenstr. 4-12, D-76133 Karlsruhe
--
Visit the official FVWM web page at URL:http://www.fvwm.org/.
To unsubscribe from the list, send unsubscribe fvwm-workers in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * Removed debug code.

2002-09-11 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt02/09/11 05:50:02

Modified files:
fvwm   : events.c 

Log message:
* Removed debug code.

--
Visit the official FVWM web page at URL:http://www.fvwm.org/.
To unsubscribe from the list, send unsubscribe fvwm-workers in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


CVS domivogt: * Fixed (de)iconify bug introduced with transient stacking bug.

2002-09-11 Thread FVWM CVS
CVSROOT:/home/cvs/fvwm
Module name:fvwm
Changes by: domivogt02/09/11 12:51:32

Modified files:
.  : ChangeLog 
fvwm   : icons.c 

Log message:
* Fixed (de)iconify bug introduced with transient stacking bug.

--
Visit the official FVWM web page at URL:http://www.fvwm.org/.
To unsubscribe from the list, send unsubscribe fvwm-workers in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: CVS domivogt: * Event handling fixes. Code is slowly becoming usable again. Known problems:

2002-09-11 Thread Dominik Vogt
On Wed, Sep 11, 2002 at 08:00:51PM -0500, fvwm-workers wrote:
 Log message:
 * ... Code is slowly becoming usable again...

It's stable enough to write or apply patches given that you can
live without restart/recapture and tolerate buggy menus and
complex functions.

Bye

Dominik ^_^  ^_^

 --
Dominik Vogt, [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
--
Visit the official FVWM web page at URL:http://www.fvwm.org/.
To unsubscribe from the list, send unsubscribe fvwm-workers in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: FVWM: FVWM crashes when typing Q on Pine

2002-09-11 Thread Wolfgang Pfeiffer
On Sep 8, 2002, 19:55 (-) Mikhael Goikhman wrote:

 On 08 Sep 2002 21:38:20 +0200, Wolfgang Pfeiffer wrote:
 
  On Sep 8, 2002, 18:59 (-) Mikhael Goikhman wrote:
 
   On 08 Sep 2002 20:43:02 +0200, Wolfgang Pfeiffer wrote:
   
On Sep 8, 2002, 08:51 (-) Mikhael Goikhman wrote:
   
 Can you reproduce the crash with this two line .xinirc:

   xterm -geometry 92x50+1550+60 -e /usr/bin/pine 
   /usr/bin/fvwm -cmd 'AddToFunc StartFunction I FvwmPager'
   
these 2 lines when starting fvwm or fvwm-themes-start ?
  
   The second line already starts fvwm in foreground, don't put any other
   lines into ~/.xinitrc except for maybe sleep 3 in the middle.
 
  The same as with the old .xinitrc: XCrash if I type a 'q' on Pine in
  an xterm

 So this happens with no config at all. Fine. Forget fvwm-themes for now.

 Please recompile 2.5.3 from sources and install it (say into /usr/local).
 Then run the same 2 line .xinitrc, but with /usr/local/bin/fvwm instead.
 When you get core, run gdb /usr/local/bin/fvwm core and then where.
 Send the stack trace (5-20 lines), preferably to [EMAIL PROTECTED]
 Thank you very much.

 Regards,
 Mikhael.

OK: I installed FVWM from source to the default directories with:
./configure
 make
 make check (not being sure whether this was useful .. :)
 make install

I didn't touch any config.files for the build: just ran the 4 commands
from above. Didn't even install fribidi from source (tho there is
fribidi installed from an RPM ...)

then running:

###
$ gdb /usr/local/bin/fvwm core
GNU gdb 19991004
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and
you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type show copying to see the conditions.
There is absolutely no warranty for GDB.  Type show warranty for
details.
This GDB was configured as i386-redhat-linux...
Core was generated by `/usr/local/bin/fvwm -cmd AddToFunc
StartFunction I FvwmPager'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/X11R6/lib/libXpm.so.4...done.
Reading symbols from /usr/lib/libstroke.so.0...done.
Reading symbols from /usr/X11R6/lib/libSM.so.6...done.
Reading symbols from /usr/X11R6/lib/libICE.so.6...done.
Reading symbols from /usr/X11R6/lib/libXext.so.6...done.
Reading symbols from /usr/X11R6/lib/libX11.so.6...done.
Reading symbols from /lib/libm.so.6...done.
Reading symbols from /usr/lib/libpng.so.2...done.
Reading symbols from /usr/lib/libz.so.1...done.
Reading symbols from /lib/libc.so.6...done.
Reading symbols from /lib/ld-linux.so.2...done.
Reading symbols from /usr/lib/gconv/ISO8859-1.so...done.
#0  0x80a590c in FlocaleFreeNameProperty (ptext=0x80effe8) at
Flocale.c:1569
---Type return to continue, or q return to quit---
1569if (ptext-name != NULL  ptext-name !=
*ptext-name_list)
(gdb) where
#0  0x80a590c in FlocaleFreeNameProperty (ptext=0x80effe8) at
Flocale.c:1569
#1  0x8074355 in free_window_names (fw=0x80effe0, nukename=0,
nukeicon=1)
at add_window.c:2812
#2  0x8072651 in destroy_icon (fw=0x80effe0) at add_window.c:1255
#3  0x80744bd in destroy_window (fw=0x80effe0) at add_window.c:2915
#4  0x8070141 in HandleUnmapNotify () at events.c:3228
#5  0x80703a1 in DispatchEvent (preserve_Fw=0) at events.c:3358
#6  0x8070432 in HandleEvents () at events.c:3413
#7  0x808398a in main (argc=3, argv=0xba64) at fvwm.c:2251
(gdb)

##
Hoping it helps

Wolfgang



-- 
Key on: http://home.t-online.de/home/520050060325-0001/
Key fingerprint = 5FFA E2D1 6DB5 C023 0C5F  3FA7 4E08 5F9F 1560 0BA8

Home Page: www.geocities.com/wolfgangpfeiffer/

-- END TRANSMISSION --

--
Visit the official FVWM web page at URL:http://www.fvwm.org/.
To unsubscribe from the list, send unsubscribe fvwm-workers in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: FVWM: Addendum to FAQ 4.3

2002-09-11 Thread Mikhael Goikhman
On 11 Sep 2002 09:44:26 +0200, Eric Doenges wrote:
 
 first a short disclaimer -- I have no idea if this is the correct
 mailing list, but there seems to be no other way of contacting the
 fvwm maintainers. If this mail is inapropriate, I'm sorry.
 
 Anyway, I have an addendum to FAQ 4.3 I'm seeing odd things when
 trying to preprocess files with the FvwmM4/Cpp module
 
 I was seeing strange things too. On our setup, the main .fvwm2rc file
 reads a number of different subfiles, some of which were parsed with
 FvwmM4. This periodically led to a race condition where FvwmM4 was not
 finished processing before the M4 output was needed elsewhere in the
 configuration (in our case, the problem was with FvwmButtons being
 started before the apps to swallow had been started). The fix detailed
 in FAQ 4.3 did not help (because we were starting other modules), but
 the solution was surprisingly simple:
 
 I replaced all FvmM4 file commands with PipeRead 'm4 file' and
 everything seems to work now.

Well, this may be useful, but it is not the same, none of the X and FVWM
related constants are expanded, usual search paths are not used and so on.

The real solution to your synchronization problem is to invoke FvwmM4
with the -lock switch.

Regards,
Mikhael.
--
Visit the official FVWM web page at URL: http://www.fvwm.org/.
To unsubscribe from the list, send unsubscribe fvwm in the body of a
message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]


Re: FVWM: Addendum to FAQ 4.3

2002-09-11 Thread Mikhael Goikhman
On 11 Sep 2002 15:41:08 +0200, Eric Doenges wrote:
 
 Mikhael Goikhman wrote:
 
  Well, this may be useful, but it is not the same, none of the X and FVWM
  related constants are expanded, usual search paths are not used and so on.
 
 I found that out the hard way shortly after sending my mail
 (everything seemed to work for me, but broke for some other users
 =8^(. Fortunately our configuration only uses HOME and USER, which
 fvwm can expand itself from $HOME and $USER.
 
  The real solution to your synchronization problem is to invoke FvwmM4
  with the -lock switch.
 
 We currently run fvwm-2.2 and fvwm-2.4 (on different Unix variants),
 but want to have the same configuration files.

If you insist not to use any 2.4.x features, we can't help. The support on
this list and the FAQ (not counting some non-updated parts) is for 2.4.x.

 '-lock' seems to be a
 feature added in version 2.4. Also, if I use '-lock' to read
 m4-processed files from a .fvwm2rc File, it doesn't seem to do
 anything (i.e. FvwmM4 -lock file exhibits the same problems
 FvwmM4 file does). The manual page says to start the module with
 'ModuleSynchronous, but the FvwmM4 module itself isn't started
 anywhere.

Yes, I forgot to mention that for -lock to work you should run:

  ModuleSynchronous FvwmM4 -lock file

Regards,
Mikhael.
--
Visit the official FVWM web page at URL: http://www.fvwm.org/.
To unsubscribe from the list, send unsubscribe fvwm in the body of a
message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]