From: MERC::"uunet!WKUVX1.BITNET!DSJ-Mgr" 21-DEC-1992 09:16:09.77 To: galaxy::gleeve CC: Subj: OCTOBER92.XTUNE $! ------------------ CUT HERE ----------------------- $ v='f$verify(f$trnlnm("SHARE_UNPACK_VERIFY"))' $! $! This archive created by VMS_SHARE Version 8.1 $! On 6-OCT-1992 12:26:57.89 By user GOATHUNTER (@WKUVX1.BITNET) $! $! The VMS_SHARE software that created this archive $! was written by Andy Harper, Kings College London UK $! -- September 1992 $! $! Credit is due to these people for their original ideas: $! James Gray, Michael Bednarek $! $! TO UNPACK THIS SHARE FILE, CONCATENATE ALL PARTS IN ORDER $! AND EXECUTE AS A COMMAND PROCEDURE ( @name ) $! $! THE FOLLOWING FILE(S) WILL BE CREATED AFTER UNPACKING: $! 1. [.XTUNE]EXPOSE.C;1 $! 2. [.XTUNE]WMTEST.C;1 $! $set="set" $set symbol/scope=(nolocal,noglobal) $f=f$parse("SHARE_UNPACK_TEMP","SYS$SCRATCH:."+f$getjpi("","PID")) $e="write sys$error ""%UNPACK"", " $w="write sys$output ""%UNPACK"", " $ if .not. f$trnlnm("SHARE_UNPACK_LOG") then $ w = "!" $ ve=f$getsyi("version") $ if ve-f$extract(0,1,ve) .ges. "4.4" then $ goto start $ e "-E-OLDVER, Must run at least VMS 4.4" $ v=f$verify(v) $ exit 44 $unpack: subroutine ! P1=filename, P2=checksum, P3=attributes $ if f$search(P1) .eqs. "" then $ goto file_absent $ e "-W-EXISTS, File ''P1' exists. Skipped." $ delete 'f'* $ exit $file_absent: $ if f$parse(P1) .nes. "" then $ goto dirok $ dn=f$parse(P1,,,"DIRECTORY") $ w "-I-CREDIR, Creating directory ''dn'" $ create/dir 'dn' $ if $status then $ goto dirok $ e "-E-CREDIRFAIL, Unable to create ''dn' File skipped." $ delete 'f'* $ exit $dirok: $ w "-I-UNPACK, Unpacking file ''P1'" $ n=P1 $ if P3 .nes. "" then $ n=f $ if .not. f$verify() then $ define/user sys$output nl: $ EDIT/TPU/NOSEC/NODIS/COM=SYS$INPUT 'f'/OUT='n' PROCEDURE GetHex LOCAL x1,x2;x1:=INDEX(t,ERASE_CHARACTER(1))-1;x2:=INDEX(t, ERASE_CHARACTER(1))-1;RETURN 16*x1+x2;ENDPROCEDURE; PROCEDURE SkipPartsep LOOP EXITIF INDEX(ERASE_LINE,"-+-+-+-+-+-+-+-+")=1; ENDLOOP;ENDPROCEDURE; PROCEDURE ExpandChar CASE CURRENT_CHARACTER FROM ' ' TO 'z' ["`"] :ERASE_CHARACTER(1);COPY_TEXT(ASCII(GetHex));[" "]:ERASE_CHARACTER(1);[ OUTRANGE,INRANGE]:MOVE_HORIZONTAL(1);ENDCASE;ENDPROCEDURE; PROCEDURE ProcessLine s:=ERASE_CHARACTER(1);LOOP EXITIF CURRENT_OFFSET>=LENGTH( CURRENT_LINE);ExpandChar;ENDLOOP;IF s="V" THEN APPEND_LINE;ENDIF;ENDPROCEDURE; PROCEDURE AdvanceLine MOVE_HORIZONTAL(-CURRENT_OFFSET);MOVE_VERTICAL(1); ENDPROCEDURE;PROCEDURE Decode POSITION(BEGINNING_OF(b));LOOP EXITIF MARK(NONE)= END_OF(b);IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+-")=1 THEN SkipPartSep; ELSE ProcessLine;AdvanceLine;ENDIF;ENDLOOP;ENDPROCEDURE;SET(FACILITY_NAME, "UNPACK");SET(SUCCESS,OFF);SET(INFORMATIONAL,OFF);t:="0123456789ABCDEF";f:= GET_INFO(COMMAND_LINE,"file_name");b:=CREATE_BUFFER(f,f);Decode;WRITE_FILE(b, GET_INFO(COMMAND_LINE,"output_file"));QUIT; $ if p3 .eqs. "" then $ goto dl $ open/write fdl &f $ write fdl "RECORD" $ write fdl P3 $ close fdl $ w "-I-CONVRFM, Converting record format to ", P3 $ convert/fdl=&f &f-1 &P1 $dl: delete 'f'* $ if P2 .eqs. "" then $ goto ckskip $ checksum 'P1' $ if checksum$checksum .nes. P2 then $ - e "-E-CHKSMFAIL, Checksum of ''P1' failed." $ exit $ckskip: e "-W-CHKSUMSKIP, checksum validation unavailable for ''P1'" $ endsubroutine $start: $! $ create 'f' X/* XFigure`202.`20`20Application`20to`20Test`20Window`20Manager`20Load`20for`20Foc Vus`20Switches X*/ X X/*`20EXPOSE.C`09`09`09`09`09`09`09`20*/ X/*`20Written`20by`20Glenn`20Wolf`20for`20X`20Capacity`20study`09`09`09`20*/ X/*`20Intended`20to`20test`20effect`20of`20focus`20switch`20on`20window`20manag Ver`09`20*/ X/*`20Run`20twice`20and`20exchange`20IDs;`20application`20will`20switch`202500 V`20times*/ X X#include`20 X#include`20 X#include`20 X X#include`20 X#define`20`20pongDelay`20100 X#define`20`20EXTRA_COUNT`2010 X XDisplay`20`09*display; XXtAppContext`09ctx; Xlong`09`09iterations`20=`202500; XWidget`09`09mw,`20rc,`20winW,`20othWinW,`20goW,`20exW,`20iterationsW; Xlong`09`09othWin`20=`200; Xchar`09`09str`5B100`5D; XXButtonEvent`09ev`20=`20`7B X`09`09ButtonPress,/*`20Event`20type`20`20`20*/ X`09`090,`09`20`20`20`20/*`20Serial`20#`20`20`20`20`20*/ X`09`09True,`09`20`20`20`20/*`20Sent`20event`20`20`20*/ X`09`090,`09`20`20`20`20/*`20Display`09`20`20`20`20*/ X`09`090,`09`20`20`20`20/*`20Window`09`20`20`20`20*/ X`09`090,`09`20`20`20`20/*`20Root`09`20`20`20`20*/ X`09`090,`09`20`20`20`20/*`20Subwindow`20`20`20`20*/ X`09`090,`09`20`20`20`20/*`20time`09`20`20`20`20*/ X`09`094,`09`20`20`20`20/*`20x`09`20`20`20`20*/ X`09`094,`09`20`20`20`20/*`20y`09`20`20`20`20*/ X`09`094,`09`20`20`20`20/*`20root`20x`09`20`20`20`20*/ X`09`094,`09`20`20`20`20/*`20root`20y`09`20`20`20`20*/ X`09`090,`09`20`20`20`20/*`20State`09`20`20`20`20*/ X`09`09Button1,`20`20`20`20/*`20Button`09`20`20`20`20*/ X`09`09True`09`20`20`20`20/*`20same`20Screen`20`20*/ X`09`09`7D; X Xvoid`20eval() X`20`20`20`20`7B X`20`20`20`20Arg`20`20`20`20`20argLst`5B10`5D; X`20`20`20`20long`20`20`20`20argCnt`20=`200; X`20`20`20`20char`20`20`20`20str`5B100`5D; X`20`20`20`20char`20`20`20`20*current; X X`20`20`20`20argCnt`20=`200; X`20`20`20`20XtSetArg(argLst`5BargCnt`5D,`20XmNvalue,`20`26current);`20`20`20 V`20argCnt++; X`20`20`20`20XtGetValues(othWinW,`20argLst,`20argCnt); X`20`20`20`20if`20(strlen(current)) X`09sscanf(current,`20"%x",`20`26othWin); X`20`20`20`20XtGetValues(iterationsW,`20argLst,`20argCnt); X`20`20`20`20if`20(strlen(current)) X`09sscanf(current,`20"%d",`20`26iterations); X`20`20`20`20`7D X Xvoid`20send() X`20`20`20`20`7B X`20`20`20`20if`20(othWin) X`09`7B X`09ev.display`20=`20display; X`09ev.window`20=`20othWin; X`09XSendEvent(display,`20othWin,`20True,`20ButtonPressMask,`20`26ev); X`09`7D X`20`20`20`20`7D X Xvoid`20pong(Widget`20w,`20XtPointer`20data,`20XEvent`20*event,`20Boolean`20*co Vnt) X`20`20`20`20`7B X`20`20`20`20Arg`20`20`20`20`20argLst`5B10`5D; X`20`20`20`20long`20`20`20`20argCnt`20=`200; X`20`20`20`20char`20`20`20`20count`5B100`5D; X X`20`20`20`20XSetInputFocus(display,`20XtWindow(goW),`20RevertToNone,`20Current VTime); X`20`20`20`20if`20(!othWin) X`09eval(); X`20`20`20`20if`20(iterations--) X`09`7B X`09argCnt`20=`200; X`09sprintf(count,`20"%d",`20iterations); X`09XtSetArg(argLst`5BargCnt`5D,`20XmNvalue,`20count);`20`20`20`20argCnt++; X`09XtSetValues(iterationsW,`20argLst,`20argCnt); X`09XtAppAddTimeOut(ctx,`20pongDelay,`20send,`200); X`09`7D X`20`20`20`20else X`09exit(0); X`20`20`20`20`7D X Xvoid`20start(Widget`20w) X`20`20`20`20`7B X`20`20`20`20eval(); X`20`20`20`20send(); X`20`20`20`20`7D X Xvoid`20getPartner() X`20`20`20`20`7B X`20`20`20`20Arg`20`20`20`20`20argLst`5B10`5D; X`20`20`20`20long`20`20`20`20argCnt`20=`200; X`20`20`20`20Window`20`20w; X X`20`20`20`20w`20=`20XtWindow(mw); X`20`20`20`20sprintf(str,`20"Our`20Window:`20%x",`20w); X`20`20`20`20argCnt`20=`200; X`20`20`20`20XtSetArg(argLst`5BargCnt`5D,`20XmNlabelString,`20XmStringCreateLto VR(str));`20argCnt++; X`20`20`20`20XtSetValues(winW,`20argLst,`20argCnt); X`20`20`20`20`7D X Xvoid`20doExit() X`20`20`20`20`7B X`20`20`20`20exit(0); X`20`20`20`20`7D X Xmain(argc,`20argv) X`20`20`20`20`20int`20argc; X`20`20`20`20`20char`20**argv; X`7B X`20`20`20`20Widget`20`20toplevel,`20shell; X`20`20`20`20Arg`20`20`20`20`20args`5B10`5D`20; X`20`20`20`20long`20`20`20`20i,argCnt`20=`200; X`20`20`20`20char`20`20`20`20string`5B100`5D; X X`20`20`20`20XtToolkitInitialize(); X`20`20`20`20ctx`20=`20`20XtCreateApplicationContext(); X`20`20`20`20display`20=`20XtOpenDisplay`20(ctx,`20NULL,`20"Expose",`20"Expose" V,`20NULL,`200, X`09`09`09`20`20`20`20`20`26argc,`20argv); X`20`20`20`20if`20(!display) X`09`7B X`09XtWarning`20("Can't`20open`20display\n"); X`09exit(0); X`09`7D X`20`20`20`20shell`20=`20XtAppCreateShell("Expose",`20"Expose", X`09applicationShellWidgetClass,`20display,`20args,`20argCnt); X`20`20`20`20argCnt`20=`200; X`20`20`20`20mw`20=`20XmCreateMainWindow`20(shell,`20"MW",`20args,`20argCnt); X`20`20`20`20XtAddEventHandler(mw,`20ButtonPressMask,`20False,`20pong,`20NULL); V X`20`20`20`20XtManageChild(mw); X`20`20`20`20argCnt`20=`200; X`20`20`20`20XtSetArg(args`5BargCnt`5D,`20XmNpacking,`20XmPACK_COLUMN);`09argCn Vt++; X`20`20`20`20XtSetArg(args`5BargCnt`5D,`20XmNnumColumns,`20(short)2);`09argCnt+ V+; X`20`20`20`20XtManageChild(rc`20=`20XmCreateRowColumn`20(mw,`20"RC",`20args, V`20argCnt)); X`20`20`20`20argCnt`20=`200; X`20`20`20`20XtManageChild(winW`20=`20XmCreateLabel(rc,`20"Our`20Window:",`20ar Vgs,`20argCnt)); X`20`20`20`20argCnt`20=`200; X`20`20`20`20XtManageChild(XmCreateLabel(rc,`20"Other`20Window:",`20args,`20arg VCnt)); X`20`20`20`20argCnt`20=`200; X`20`20`20`20XtManageChild(othWinW`20=`20XmCreateText(rc,`20"",`20args,`20argCn Vt)); X`20`20`20`20argCnt`20=`200; X`20`20`20`20XtManageChild(XmCreateLabel(rc,`20"Iterations",`20args,`20argCnt)) V; X`20`20`20`20argCnt`20=`200; X`20`20`20`20sprintf(str,`20"%d",`20iterations); X`20`20`20`20XtSetArg(args`5BargCnt`5D,`20XmNvalue,`20str);`20`20argCnt++; X`20`20`20`20XtManageChild(iterationsW`20=`20XmCreateText(rc,`20"",`20args,`20a VrgCnt)); X`20`20`20`20argCnt`20=`200; X`20`20`20`20XtManageChild(goW`20=`20XmCreatePushButton(rc,`20"Go",`20args,`20a VrgCnt)); X`20`20`20`20XtAddCallback(goW,`20XmNactivateCallback,`20start,`20NULL); X`20`20`20`20argCnt`20=`200; X`20`20`20`20XtManageChild(exW`20=`20XmCreatePushButton(rc,`20"exit",`20args, V`20argCnt)); X`20`20`20`20XtAddCallback(exW,`20XmNactivateCallback,`20doExit,`20NULL); X`20`20`20`20for`20(i`20=1;`20i`20<=`20EXTRA_COUNT;`20i++) X`09`7B X`09sprintf(string,`20"This`20is`20a`20very`20long`20Text`20Widget`20#%d",`20i) V; X`09argCnt`20=`200; X`09XtManageChild(XmCreateLabel(rc,`20string,`20args,`20argCnt)); X`09`7D X`20`20`20`20XtRealizeWidget(shell); X`20`20`20`20XtAppAddTimeOut(ctx,`20500,`20getPartner,`200); X`20`20`20`20XtAppMainLoop(ctx); X`7D $ call unpack [.XTUNE]EXPOSE.C;1 1333013789 "" $! $ create 'f' X/* XFigure`201.`20`20Application`20to`20Test`20Window`20Manager`20Participation V`20in`20Window`20Creation X`09`20`20`20and`20Deletion X*/ X X/*`20WMTEST.C`09`09`09`09`09`09`09`20*/ X/*`20Written`20by`20Glenn`20Wolf`20for`20X`20Capacity`20study`09`09`09`20*/ X/*`20Intended`20to`20test`20window`20creation/destruction`20impact`09`09`20*/ X/*`20Generates`20and`20destroys`2020`20windows`20n`20times`20(input`20n)`09 V`09`20*/ X X#include`20 X#include`20 X X#define`20numShells`2020 X XDisplay`20`09*display; XXtAppContext`09ctx; XWidget`09`09shells`5BnumShells`5D; Xlong`09`09iterations`20=`201; Xlong`09`09`20`20`20`20totalIterations`20=`201; X Xvoid`20exit(long); X XBoolean`20addAShell`20(currentShell) Xlong`20currentShell; X`20`20`20`20`7B X`20`20`20`20Arg`20`20`20`20`20args`5B12`5D; X`20`20`20`20long`20`20`20`20argCnt`20=`200; X`20`20`20`20char`20`20`20`20str`5B100`5D; X`20`20`20`20Widget`20`20mw; X X`20`20`20`20if`20(shells`5BcurrentShell`5D) X`09`7B X`09XtDestroyWidget(shells`5BcurrentShell`5D); X`09shells`5BcurrentShell`5D`20=`200; X`09if`20(currentShell`20==`20numShells`20-`201) X`09`20`20`20`20`20--iterations; X`09`7D X`20`20`20`20else X`09`7B X`09sprintf(str,`20"WMTest%d",`20currentShell+1); X`09XtSetArg(args`5BargCnt`5D,`20XmNx,`20(currentShell+1)*25);`20`20argCnt++; X`09XtSetArg(args`5BargCnt`5D,`20XmNy,`20(currentShell+1)*25);`20`20argCnt++; X`09shells`5BcurrentShell`5D`20=`20XtAppCreateShell(str,`20str, X`09`20`20`20`20applicationShellWidgetClass,`20display,`20args,`20argCnt); X`09argCnt`20=`200; X`09XtSetArg(args`5BargCnt`5D,`20XmNwidth,`20200);`09`09argCnt++; X`09XtSetArg(args`5BargCnt`5D,`20XmNheight,`20200);`20`09argCnt++; X`09mw`20=`20XmCreateMainWindow`20(shells`5BcurrentShell`5D,`20"MW",`20args, V`20argCnt); X`09XtManageChild(mw); X`09sprintf(str,`20"Iteration`20%d`20of`20`20%d",`20totalIterations-iterations+ V1, XtotalIterations); X`09XtManageChild(XmCreateLabel(mw,`20str,`20NULL,`200)); X`09XtRealizeWidget(shells`5BcurrentShell`5D); X`09`7D X`20`20`20`20if`20(iterations`20>`200) X`09XtAppAddTimeOut(ctx,`20500,`20addAShell,`20currentShell`20<`20(numShells-1) V`20? XcurrentShell`20+`201`20:`200); X`20`20`20`20else X`09exit`20(0); X`20`20`20`20return`20TRUE; X`20`20`20`20`7D X Xmain(argc,`20argv) X`20`20`20`20`20int`20argc; X`20`20`20`20`20char`20**argv; X`7B X`20`20`20`20Widget`20toplevel,`20button; X`20`20`20`20Arg`20args`5B1`5D`20; X`20`20`20`20long`20i; X X`20`20`20`20for`20(i=0;`20i`201) X`09`7B X`09totalIterations`20=`20iterations`20=`20atoi(argv`5B1`5D); X`09printf`20("Doing`20%d`20iterations\n",`20iterations); X`09`7D X`20`20`20`20XtAppAddTimeOut(ctx,`2050,`20addAShell,`200); X`20`20`20`20XtAppMainLoop(ctx); X`7D $ call unpack [.XTUNE]WMTEST.C;1 268457776 "" $ v=f$verify(v) $ exit