lfk@amdahl.uts.amdahl.com (Lynn Kerby) (08/02/88)
What follows is a shell archive that contains a patch to correct a problem in the Arexx date() function. This patch will only apply to the version of rexxsyslib.library that came out with the v1.06 upgrade. Now comes my turn to put in a plug for ARexx! Not only is the program great, but support is outstanding - everytime I have called the author, he was very helpful in getting the the fix into my hands. In this case, I decided to do him a favor and post the program I wrote to patch the library. Watch out for the signature at the end and feed this to /bin/sh. Lynn Kerby lfk@uts.amdahl.com -------- #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create: # README # rxpatch.c # rxpatch.uue # This archive created: Tue Aug 2 00:14:00 1988 # By: Lynn Kerby (Amdahl Corporation, Sunnyvale, CA) export PATH; PATH=/bin:/usr/bin:$PATH if test -f 'README' then echo shar: "will not over-write existing file 'README'" else cat << \SHAR_EOF > 'README' This is a small program to patch (and unpatch if desired) the rexxsyslib.library file for AREXX v1.06. It attempts to do reasonable things on error, but doesn't go as far as it probably could. If you are not running v1.06, do not try running the patch program!! The problem is that the new DATE() function doesn't understand that people like to see dates like 31-jul-88 instead of 00-aug-88. I called Bill Hawes and he said the change was pretty minor, so I decided to try finding the code in rexxsyslib.library that needed replacing. If you don't feel like trusting my code, the change is pretty easy to make using a filezap utility. OFFSET 0x7c88 VER 0xb44064ee REPL 0xb44062ee (Using NewZAP, the mod goes at offset 0x88 in sector 63 of the file) The program makes it a little easier. Syntax is rxpatch [-r]. The -r option will remove the patch if you want to get rid of it. All standard disclaimers apply, and please keep a copy of the old rexxsyslib.library around in case something goes wrong! Lynn Kerby lfk@uts.amdahl.com ...!amdahl!lfk SHAR_EOF if test 1071 -ne "`wc -c < 'README'`" then echo shar: "error transmitting 'README'" '(should have been 1071 characters)' fi fi if test -f 'rxpatch.c' then echo shar: "will not over-write existing file 'rxpatch.c'" else cat << \SHAR_EOF > 'rxpatch.c' /* * Program to patch the DATE() function of rexxsyslib.library to correct * a problem with months that have more than 30 days. * * USAGE: rxpatch1 [-r] * * The program will only open LIBS:rexxsyslib.library. The -r option * removes the patch (If you really want to). * * Written by Lynn Kerby with patch info from Bill Hawes * * No warrantees expressed or implied. Keep a copy of the old * rexxsyslib.library around just in case. */ #include <fcntl.h> unsigned long offs=62*512+0x88; unsigned long orig=0xb44064ee; unsigned long repl=0xb44062ee; main(argc, argv) int argc; char **argv; { int libfd; long cur; int undoflag = 0; if (argc == 2) { if (*argv[1]++ == '-') { if (*argv[1] == 'r') undoflag = 1; else usage(); } else usage(); } else { if (argc != 1) usage(); } libfd = open("LIBS:rexxsyslib.library",O_RDWR); if (libfd == -1) { write(2,"ERROR:Unable to open rexxsyslib.library\n",40); exit(5); } (void) lseek(libfd,offs,0); if ((read(libfd,&cur,4)) == -1) { write(2,"ERROR:Read of rexxsyslib.library failed\n",40); exit(5); } if (undoflag) { if (cur != repl) { write(2,"ERROR: rexxsyslib.library not patched\n",38); } else { (void) lseek(libfd,offs,0); (void) write(libfd,&orig,4); } } else { if (cur == repl) { write(2,"ERROR: rexxsyslib.library already patched\n",42); } else if (cur != orig) { write(2,"ERROR: verify of data failed\n",29); } else { (void) lseek(libfd,offs,0); (void) write(libfd,&repl,4); } } close(libfd); } usage() { write(2,"USAGE: rxpatch [-r]\n",20); exit(0); } SHAR_EOF if test 1611 -ne "`wc -c < 'rxpatch.c'`" then echo shar: "error transmitting 'rxpatch.c'" '(should have been 1611 characters)' fi fi if test -f 'rxpatch.uue' then echo shar: "will not over-write existing file 'rxpatch.uue'" else cat << \SHAR_EOF > 'rxpatch.uue' begin 755 rxpatch M #\P # ( -& &0 $ /I #1D[Z!.I. M5?_X0FW_^ QM ( "&8T(&T "B)H 12J $#!$ +68<(&T "B)H 0,$0!R M9@@[? !__A@!$ZZ AY@!$ZZ AA@# QM $ "&<$3KH""C\\ )(>@$H3KH" MQEQ/.T#__@QM_____F8</SP *$AZ 28_/ "3KH(ZE!//SP !4ZZ";A43T)G M+RR C\M__Y.N@'^4$\_/ $2&W_^C\M__Y.N@/"4$^P?/__9AP_/ H2'H! M"S\\ ).N@BF4$\_/ %3KH)=%1/2FW_^&="("W_^K"L@ IG%#\\ "9(>@$( M/SP DZZ"'I03V B0F<O+( "/RW__DZZ 9903S\\ 1(;( &/RW__DZZ"%90 M3V!>("W_^K"L@ IF%#\\ "I(>@#M/SP DZZ"#A03V! ("W_^K"L@ 9G%#\\ M !U(>@#Z/SP DZZ"!I03V B0F<O+( "/RW__DZZ 3903S\\ 1(;( */RW_ M_DZZ!_903S\M__Y.N@G^5$].74YU3$E"4SIR97AX<WES;&EB+FQI8G)A<GD M15)23U(Z56YA8FQE('1O(&]P96X@<F5X>'-Y<VQI8BYL:6)R87)Y"@!%4E)/ M4CI296%D(&]F(')E>'AS>7-L:6(N;&EB<F%R>2!F86EL960* $524D]2.B!R M97AX<WES;&EB+FQI8G)A<GD@;F]T('!A=&-H960* $524D]2.B!R97AX<WES M;&EB+FQI8G)A<GD@86QR96%D>2!P871C:&5D"@!%4E)/4CH@=F5R:69Y(&]F M(&1A=&$@9F%I;&5D"@!.50 /SP %$AZ !@_/ "3KH&^%!/0F=.N@?(5$]. M74YU55-!1T4Z(')X<&%T8V@@6RUR70H $Y5 !(YPP@."T "$ZZ!T(P!,'\ M 8D0-7L@!I*1&T*N&R #FP$2I)F$#E\ * 'G#_3-\$,$Y=3G4P+0 .2,!3 M@"\ +RT "B\23KH)2BH L+S_____3^\ #&8,3KH(_CE @!YP_V#*0J="IR\2 M3KH))D_O Q@NDY5 _+0 ,/SP# 2\M AA!E!/3EU.=4Y5 !(YP\P)&T M"$ZZ!K(F;( :> !@#C $P?P !DJS" !G#E)$N&R #FWL>@9@ #$""T 0 , M9S!(>/__+PI.N@B2+ !03V<@+P9.N@C*+PI.N@AD2H!03V8.3KH(;CH L'P MS68 (Q(> /M+PI.N@AP+ !*AE!/9F (+0 QF!'H!8&Q(> /N+PI.N@A2 M+ !03V8(3KH(,CH 8%1(> A2'H DDZZ".XN %!/9PHO!TZZ")A83V >2'@ M 4AZ ((O!DZZ"%Q(>/__0J<O!DZZ"#)/[P 88"8P+0 ,P'P% +!\!0!F&"\& M3KH'LGH$6$\Y18 ></],WPSP3EU.=3 $P?P !B>&" P!,'\ 8@0-'+,6T M# $""T P ,9Q!(> !0J<O!DZZ!]A/[P ,, 1@PF1O<RYL:6)R87)Y M3E4 $CG#" X+0 (3KH%;# $P?P !B1 U>R &DI$;0JX;( .; 1*DF80.7P M H ></],WP0P3EU.=3 J 3 ? #L'P 68*.7P !8 ></]@X' ,"T #B\ M+RT "B\23KH'4"H L+S_____3^\ #&8,3KH'$CE @!YP_V"T( 5@L&%P0^R M&D7L@!JUR68.,CP $FL(= BPE')__PI3X @+'@ !"E.@"1(YX" ""X ! $I M9Q!+^@ (3J[_XF &0J?S7TYS0_H ($ZN_F@I0( H9@PN/ #@ =.KO^48 1. MN@ :4$].=61O<RYL:6)R87)Y $GY !__DYU3E4 "\*2'D 0 ,"R #L'\ M 8O $ZZ!P I0( :4$]F%$*G2'D 0 3KH&Q%!/+FR ($YU(&R &D)H 0@ M;( :,7P 0 0(&R &C%\ $ "B!L@" @+( @D*@ !%" *4" +"!L@"P@O$U! M3EA"ITZZ!K0D0$JJ *Q83V<N+RT #"\M @O"DZZ *XY? !@# @;( : &B M $(&R &@!H@ "D_O Q@0DAJ %Q.N@;.2&H 7$ZZ!I I0( R(&R ,DJH M "103V<0(&R ,B)H "0O$4ZZ!9)83R\L@#(O"DZZ F@I;( R@#903TZZ!9(@ M;( :((!.N@6T(&R &B% 9G%DAX ^U(>@ J3KH%D"!L@!HA0 ,4$\O+( V M/RR .DZZ^7A"9TZZ ZQ03R1?3EU.=2H 3E4 $CG## D;0 0(&T "$JH *QG M&"!M @@* "LY8 H "!$("@ $.6 )D!@!"9L@! 0$TB 2,#0K0 ,5( Y0( \ M0J<P+( \2, O $ZZ!9(I0( ^4$]F"$S?##!.74YU$!-(@#H /P4@2U*(+P@O M+( ^3KH!?C %2, @0-'L@#Y#^@%$$-EF_#\M XO"B\L@#Y.N@$Z(&R /D(P M4 Y? !@#HP!4C T*R /B9 4HLD2T_O !00$TB .@"P? @9QBZ? )9Q*Z M? ,9PRZ? -9P:Z? *9@12BV#8#!, (&UZ#!, (F8N4HL@2U*+$!!(@#H M9QX@2E**$(6Z? B9A ,$P B9@12BV &0BK__V "8-9@."!+4HL0$$B .@!G M)KI\ "!G(+I\ EG&KI\ QG%+I\ UG#KI\ IG""!*4HH0A6#.($I2BD(0 M2D5F E.+4FR .F _UI"$D*G,"R .E) 2,#E@"\ 3KH$<"E @#903V8(0FR M.F _MAZ "9L@#Y@)# %2,#E@"!L@#8ABP@ ($L@"$H89OR1P%.(, A20$C MU\!21;IL@#IMUC %2,#E@"!L@#9"L @ 8 #^E" ,#Q__V $,"\ #"!O 1* M&&;\4T@B;P (4T 0V5?(__QG D(0("\ !$YU3.\# $( @R+P ,8 (0V5?) M__QG!E)!8 )"&%')__Q.=4Y5 !(YPXP)&T "$*G2'H CDZZ _8I0(!"4$]F M"$S?#'!.74YU(&T #")H "0O*0 $3KH$)B@ 6$]G4DAZ &T@1"\H #9.N@/X M)D!*@%!/9S1(> /M+PM.N@+Z+ !03V<D( ;E@"H ($4E: ( *0E1@"<2'@# M[4AZ #A.N@+6)4 H%!/+P1.N@/$6$\O+(!"3KH#*$*L@$)83V" :6-O;BYL M:6)R87)Y %=)3D1/5P J $Y5 !(YPP@."T "$ZZ ' P!,'\ 8D0-7L@!I* M1&T*N&R #FP$2I)F$#E\ * 'G#_3-\$,$Y=3G4P*@ $P'P V8*.7P !8 > M</]@Y' ,"T #B\ +RT "B\23KH"A"H L+S_____3^\ #&8,3KH"&CE @!YP M_V"X( 5@M$Y5__Q(>! 0J=.N@+H*T#__ @ Q03V<22FR ,&8(("W__$Y= M3G5.N@ &< !@]$Y5 !(> $2'H '$ZZ ?(O $ZZ B _/ !3KH #D_O Y. M74YU7D,* $Y5 !*K(!&9P8@;(!&3I _+0 (3KH "%1/3EU.=4Y5__PO!# M M A(P"M __Q*K( :9RAX & */P1.N@#^5$]21+AL@ YM\# L@ [!_ &+P O M+( :3KH""E!/2JR 2F<&(&R 2DZ02JR %&<*+RR %$ZZ 8983TJL@$YG""!L M@$X@K(!22JR 5F<*+RR 5DZZ :)83TJL@%IG"B\L@%I.N@&26$]*K(!>9PHO M+(!>3KH!@EA/2JR 8F<*+RR 8DZZ 7)83RQX 0(+@ $ 2EG%"\-2_H "DZN M_^(J7V &0J?S7TYS2JR ,F8P2JR /F<H,"R /$C +P O+( ^3KH!8C L@#I2 M0$C Y8 O "\L@#9.N@%.3^\ $& .3KH!/"\L@#).N@%H6$\@+?_\+FR ($YU M*!].74YU3E4 $CG#B X+0 (, 3!_ &)$#5[( :2D1M"KAL@ YL!$J29A Y M? "@!YP_TS?!'!.74YU""H !P $9@@O$DZZ I83T*2< !@XB(O 0L;( H M3N[_W"(O 0L;( H3N[_@B(O 0L;( H3N[_N"QL@"A.[O_*+&R *$[N_WQ, M[P & 0L;( H3N[_K$SO 8 !"QL@"A.[O_B+&R *$[N_\1,[P . 0L;( H M3N[_UDSO X !"QL@"A.[O^^3OH B(O 0L;( H3N[_IDSO X !"QL@"A. M[O_02.<!!$SO(( #"QL@"1.KO^43-\@@$YU3OH B)O 0L;( D3N[^8DSO M , !"QL@"1.[O\Z(F\ !"QL@"1.[O[:+&R )$[N_WPB;P $("\ ""QL@"1. M[O\N(&\ !"QL@"1.[OZ,+&R )")O 0@+P (3N[]V")O 0L;( D3N[^ADSO M , !"QL@"1.[O[.(&\ !"QL@"1.[OZ 3.\# $+&R 0D[N_Z @;P $+&R M0D[N_Z8@;P $+&R 0D[N_[( /L 0 $ 5@ _( /J L !@ ?(BT0&3NM$!B[@ 4 _( /K 0 _+J end SHAR_EOF if test 4798 -ne "`wc -c < 'rxpatch.uue'`" then echo shar: "error transmitting 'rxpatch.uue'" '(should have been 4798 characters)' fi fi exit 0 # End of shell archive -- Lynn Kerby - Amdahl Corporation Sunnyvale, CA ...amdahl!lfk lfk@uts.amdahl.com Disclaimer: Any and all opinions expressed herein are my own and do not necessarily represent the views of anyone, especially my employer.