> From:	ADA::WINS%"zinser@axp616.gsi.de" 25-MAY-1995 21:28:00.16 To:	PMOREAU  CC:	 Subj:	Xscreensaver  # Return-Path: <zinser@axp616.gsi.de> < Received: from sid1.cenaath.cena.dgac.fr by ada with SMTP ; %           Thu, 25 May 95 21:27:54 MET P Received: from axp616 (AXP616.gsi.de) by sid1.cenaath.cena.dgac.fr (4.1/SMI-4.1)* 	id AA27330; Thu, 25 May 95 21:28:17 +0200% Date: Thu, 25 May 1995 21:31:14 +0200 * Message-Id: <95052521311485@axp616.gsi.de> From: zinser@axp616.gsi.de$ To: PMOREAU@ada.cenaath.cena.dgac.fr Subject: Xscreensaver 1 X-Vms-To: SMTP%"PMOREAU@ada.cenaath.cena.dgac.fr"    Hello Patrick!  < 	Just looked at the Xscreensaver-program you ported to VMS. < 	This one is really funny for running on  a workstation and 7 	several of the graphics hacks are quite impressive. I  9 	noticed quite a number of informationals/warnings, when  > 	compiling with DEC C. I append a list of the changes to this : 	mail, but since there is a number of these I've put also @ 	a zip-archive of the changed sources in the incoming directory > 	of your server. Actually one problem remains with getpwnam.c.B 	If you have an  idea how to cure this I would be most interested  	to hear about it. 	 G         I've noticed your define XPointer=char* in the DEC C and VAX C  A 	compile files. Actually this one is not related to the compiler  9 	but to the Xrelease. I would therefore suggest to put an   	#if Xlibspecificationrelease<5 ? 	(you'll have to look in xlib.h for the exact spelling) in the  C 	appropriate places. Then one could use one file for all compilers.    					Greetings, MartinP --------------------------------------------------------------------------------A In compile_decc.com remove the definiton XPointer=char* from the  ? compile directive for grabscreen.c (this definition prevents a  . successfull compile at least with Moftif 1.2).   In the utils-subdir:    grabscreen.c    Add a   
 #ifdef VMS # include <signal.h> #endif  E at the beginning of the file to get the function prototype for sleep.   
  strings.c   Add a    #include <string.h>     F at the beginning of the file to get various function prototypes right.   In the driver subdirectory:   3 Remove all the defines from the compile*.com files. V VMS gets defined anyhow and the redefinition of the macros already defined in config.h* produce nasty messages during compilation.    demo.c    add at line  539         9  void (*notice_events_timer_ptr)() = notice_events_timer;    and change line 561 to    N          XtAppAddTimeOut (app, notice_events_timeout, notice_events_timer_ptr,    lock.c   	 Change to     #ifndef VMS  #include <pwd.h> #else  #include "pwd.h" extern char *getenv();5 extern int validate_user(char *name, char *password); 0 extern void ungrab_keyboard_and_mouse P((void)); #endif  P  to get the function prototypes for validate_user and ungrab_keyboard_and_mouse.    subprocs.c    #include "config.h"    to pick up the no_setuid macro.        In the ifndef VMS-part add    * #include <unixio.h>  /* to pickup close */, #include <unixlib.h>  /* to pickup getpid */   remove there     #include "resource.h"   : since this only causes troubles with undefined structures.     	  visual.c   
 #ifdef VMS) #include <string.h> /*to pick up strcmp*/  #endif    
  windows.c  
 #ifdef VMS* #include <unixlib.h> /*to pick up getpid*/ #endif    xscreensaver.c    add   
 #ifdef VMS% #include <signal.h>     /*for sleep*/ & #include <unixlib.h>    /*for getpid*/ #endif   add :   void (*notice_events_timer_ptr)() = notice_events_timer;:   void (*activate_lock_timer_ptr)() = activate_lock_timer;   E at the beginning of the demo_mode function and change the subsequent  F XtAppAddTimeOut invocations to use the pointer instead of the function  A 	    cycle_id = XtAppAddTimeOut (app, cycle, cycle_timer_ptr, 0);   1 	    lock_id = XtAppAddTimeOut (app,lock_timeout, & 				       activate_lock_timer_ptr,0);    , chane the definition of now in timestring to   )   const time_t now = time ((time_t *) 0);   " to keep the subseqent ctime happy.    getpwnam.c    #include <string.h>  #include <stdlib.h>  #include <starlet.h>  <  make explicit casts to unsigned long in ItemList structure.    hpwd.c    Add    #include <starlet.h> #include <string.h>   3  to get the sys$... and strlen function prototypes.   Change sys$getsyiw to lowercase. make VMS_VERSION a static char    validate.c    Add a   
 #ifdef VMS #include <string.h>    #include "vmsutil.h"H int hash_vms_password(char *output_buf,char *input_buf,int input_length,N                       char *username,int encryption_type,unsigned short salt); #endif  G at the beginning of the file to get strlen, bcmp and hash_vms_password   function prototypes right.   In the hacks subdir:  A In compile_decc.com remove the definiton XPointer=char* from the  @ compile directive for screenhacks.c (this definition prevents a  successfull compile).    screenhack.h   add    #include <math.h>  #include <signal.h>  #include <unixlib.h># char *index(char *string, char *c);   C to the VMS specific part (it is needed e.g. for sin, sleep, getpid)   ? Change '\n' to (char *)'\n' to stick to the function prototype.   
  In noseguy.c   I #ifndef VMS'd the from_program case since this uses popen and pclose and  4 if we ever enter there the program will bomb anyhow.  