 From:	SID1::"SANDRE@clamart.wireline.slb.com"       "Gr\igoire Sandr\i /SRPC-Clamart: (33 1" 4537 2892) 12-JUL-1995 12:35:03.97 , To:	sid1::"pmoreau@clamart.wireline.slb.com"+ CC:	sid1::"SANDRE@clamart.wireline.slb.com" 5 Subj:	Une tres vilaine verrue au XSCREENSAVER v1.24-1   	 	Patrick,    	J'ai ose !   > 	Malgre une connaissance proche du zero de la programmation X,> 	j'ai ose modifier Xscreensaver.c pour lui eviter les messages@ 	envoye de faon "intempestive ?" par le fileview et ses freres.  G 	En fait, je supposse que comme l'indique une note au sujet de la V1.24 @ 	le screen saver supporte mal d'avoir des messages qu'il n'a pas@ 	provoques. Or, si tu le lances comme une application "vue$*" et@ 	que tu recopie, sans honte, par exemple vue$clock.com cela peut- 	donner un fichier appli du genre ci-dessous:   O ------------------------------------------------------------------------------- K $!  Copyright (c) 1988 Digital Equipment Corporation.  All rights reserved.  $!2 $!  Command procedure to executive the screensaver $! $ set verify $ vue$suppress_output_popup  $!' $! See if we should skip the dialog box  $!+ $    vue$get_symbol vue$show_hidden_dialogs ! $    vue$read show_hidden_dialogs  $ 7 $    if show_hidden_dialogs then goto select_qualifiers  $	vue$get_qualifiers $	goto do_saver  $  $select_qualifiers:  $	vue$popup_qualifiers $ 
 $do_saver: $  $ vue$read vue$command $  $ 'vue$command $ 9 $ set default gs_login:[xscreensaver.XSCREENSAVER-1_24_1]  $ show display   $ @setup.com $ xscreensaver $  $ vue$check_verb_loop  $ vue$read loop 7 $ if "''loop'" .eqs. "TRUE" then goto select_qualifiers O -------------------------------------------------------------------------------  	 H 	(Gs_login n'a rien a voir avec les fantomes traitant du Postscript mais 	 avec mes initiales)   B 	Avec cette procedure tu fais un choix dans le menu "applications"4 	en validant les "..." puisque cela devrait marcher.  B 	Apres, tu lance ton ton choix de screen saver et tu te precipitesG 	vers "Work in progress" suivi d'un click sur  le bouton "show output".   = 	Et la tu obtiens rapidement ce qui est dit dans la note avec C 	100% de cpu utilise (sur ma VS3000-76/SPX). De plus, si tu fais un ; 	"Hold Output" trop long, tu figes toutes tes fenetres tant - 	que tu n'a pas tuee le process du Xscreens.    < 	Alors, j'ai ose un hack assez affreux (j'avais la flemme deF 	verifier si les bons include etait la alors j'ai teste char par char) 	 ? 	Pour eviter les messages "VUE_QUANTUM_MESSAGE", j'ai teste les > 	quatres premieres lettres et renvoye False. Du coup, l'output> 	est beaucoup plus calme, et en mode verbose, il donne quelque 	chose de ce type:  H XSCREENSAVER: ## unrecognised screensaver ClientMessage PRIMARY receivedA XSCREENSAVER: ## unrecognised ClientMessage type INTEGER received J XSCREENSAVER: ## unrecognised screensaver ClientMessage SECONDARY receivedA XSCREENSAVER: ## unrecognised ClientMessage type INTEGER received H XSCREENSAVER: ## unrecognised screensaver ClientMessage PRIMARY received? XSCREENSAVER: VUE_ ClientMessage ignored: VUE_QUANTUM_MESSAGE . A XSCREENSAVER: ## unrecognised ClientMessage type INTEGER received J XSCREENSAVER: ## unrecognised screensaver ClientMessage SECONDARY receivedA XSCREENSAVER: ## unrecognised ClientMessage type INTEGER received H XSCREENSAVER: ## unrecognised screensaver ClientMessage PRIMARY receivedA XSCREENSAVER: ## unrecognised ClientMessage type INTEGER received J XSCREENSAVER: ## unrecognised screensaver ClientMessage SECONDARY received    C 	Le hack de la procedure "handle_clientmessage" dans xscreensaver.c 1 	ci-dessous compile uniquement si VMS est defini:   		 O -------------------------------------------------------------------------------  Bool* handle_clientmessage (event, until_idle_p)      XEvent *event;       Bool until_idle_p;  {    Atom type;4   if (event->xclient.message_type != XA_SCREENSAVER)     {        char *str;<       str = XGetAtomName (dpy, event->xclient.message_type);
 #ifdef VMS       if (str)       {        	  if (str[0] == 'V' &&  	      str[1] == 'U' &&  	      str[2] == 'E' &&  	      str[3] == '_')  	  { 	      if (verbose_p) I 	       printf ("%s: VUE_ ClientMessage ignored: %s .\n", progname, str);  	      return False; 	  }       }  #endifM       fprintf (stderr, "%s: %sunrecognised ClientMessage type %s received\n", + 	       progname, (verbose_p ? "## " : ""),   	       (str ? str : "(null)"));       if (str) XFree (str);      } "   if (event->xclient.format != 32)O -------------------------------------------------------------------------------   H 	Je ne doutes pas que tu trouves beaucoup mieux et surtout plus general.E 	Je suis interesse, ne serait-ce que pour montrer qu'avec l'antiquite B 	de VMS, j'ai meme un screensaver qui change de demo, de recuperer( 	un fix d'un niveau un peu plus eleve !     F 	Pour info,  ftp.cs.wisc.edu /pub/ghost/aladdin il existe une version, 	3.33 de GS (pas moi !) qui fonctionne bien.     	Merci pour tes portages.      	 < Grgoire Sandr SRPC-Clamart      Voice   : (33) 1 4537 2892< Etudes et Production Schlumberger Fax     : (33) 1 4631 3820K 26 rue de la Cavee                Email   : sandre@clamart.wireline.slb.com B 92140 Clamart                               ( gsandre@slb.com )	  " France                            