delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1992/08/24/18:14:44

From: Eric Backus <ericb AT lsid DOT hp DOT com>
Subject: Patch1 for libc.a
To: djgpp AT sun DOT soe DOT clarkson DOT edu (djgpp)
Date: Mon, 24 Aug 92 14:27:17 PDT
Mailer: Elm [revision: 66.25]

Fixes for stat() for djgpp 1.08
-------------------------------

    1. Directories have the S_IWRITE bit set, because on DOS, files
       can be added/deleted from any directory.
    2. The st_uid and st_gid fields are set to be equal to the user
       and group ids as given by getuid() and getgid(), so that all
       files appear to be owned by the caller.
    3. The st_dev field is set to the drive number that the file is
       found on.
    4. The st_ino field returns the same value for two different calls
       to stat() with the same file, and returns different values for
       different files.  This allows programs like "mv" or "cp" to
       detect if they are about to overwrite an input file.  The root
       directory is statable (looks like this was already added
       between 1.07 and 1.08 but I'll leave my modification anyway).
    5. There is some strange bug in stat() which causes the wrong
       value to get used for st_atime, st_mtime, and st_ctime if
       time() has not been previously called, which has been worked
       around.

    To get a fixed version of stat(), remove the existing
    /djgpp/libsrc/c/sys/stat.s and replace it with the stat.c and
    stat_ast.s supplied below.


Fixes for opendir(), readdir(), and closedir() for djgpp 1.08
-------------------------------------------------------------

    1. As written, opendir() appends "/*.*" to the end of the path
       passed to it, even if that path already ends in a slash.  This
       can cause the opendir() to fail.  I now strip trailing slashes
       from the supplied path.
    2. As written, readdir() skips hidden and system files.  I
       personally don't like that, and it makes programs like "du" get
       the wrong answer.  I've modified readdir() to pick up all
       files. 
    3. As written, closedir() does not return a value like it's
       supposed to.  I've modified it to return zero.

    To get a fixed version of these functions, apply the patch
    supplied below to /djgpp/libsrc/c/dos/dir.c.


Fix for umask() for djgpp 1.08
------------------------------

    1. As written, umask() returns 0644, which is the inverse of what
       it should return.  I've modified it to return 022, a more
       reasonable value.

    To get a fixed version of umask(), replace
    /djgpp/libsrc/c/sys/umask.c with the umask.c supplied below.


Fix for strftime() for djgpp 1.08
---------------------------------

    1. For some reason, the existing strftime() has the "%Z" case
       #ifdef'ed out.  The commented out code works, and is needed for
       a program like "date" to correctly print the timezone in the
       date string.  I've removed the #if around "%Z".

    To get a fixed version of strftime(), apply the patch supplied
    below to /djgpp/libsrc/c/str/strftime.c.


Fix for errno.h for djgpp 1.08
------------------------------

    1. The existing errno.h has EBADENV and E2BIG set to different
       values.  On unix, EBADENV does not exist and E2BIG is used for
       both "arg list too long" and "environment too big".  So I
       changed E2BIG to be equal to EBADENV.

    2. The existing errno.h has EXDEV ("cross-device link attempted")
       equal to 22.  However, DOS returns 17 for this situation, so
       EXDEV should be equal to 17.

    3. The existing errno.h does not have EPERM, which is used by
       several GNU programs.  I set EPERM equal to EACCES.

    To get a fixed version of errno.h, apply the patch supplied below
    to /djgpp/include/errno.h.

begin 644 patch1.zoo
M6D]/(#(N,3`@07)C:&EV92X:``#<I\3]*@```-;___\"``$````````#W*?$
M_0(",`(``'$````8&<5Q2<#E`P``OP$```(!``````````!D:7)C+F1I9@``
M````"@`<%T(`````I`%`````0"DC*``!BV.ZPC35/\U/@#^[P);VM"VTHM"9
MD)@TVD3,@/AT<QG-.H=&[J3K=,L1^-W=UH7;$?`OAWC?@VW!:XFW"$(-1TRW
MJ$G:ST(&<J0_"(7\44>*+`())(;CSSRPMZ5KH2<9._6(8%>8H<.+![:P1..+
M7$CL$(8JM AT 2 DOT PQA2#UP*Q3.>]R"]QAS!N78IZD<[BSST2MTU)G,AM>XYRQN8
MV#U:DNW\-\"SH9OX[G*%>`7R#34D^T5)*><Z-8IG+3L-2Z*:!X&$I4`NW:9&
MH<E\EXG("7V&?#8><P;<8I^6?5XJ`M=6Q4.V0=P?+'G7AY AT WO#\P?<'U28OV
MX[_`O\E"0\(/FL7=OW1NW*9#7C0KB![>VZYZ`%;[]VUTFGI-6,\8"_2Z.;Z>
M%J\J>5T"LJVDU7>E"X'Q_VX\"K=15W(K=NJA"[;S'1J0;[U-^MC9FFL9[(,]
M7[$S'33YP'O*NCHR?3)HY^G<K_HR_#K]_8M'+U:,W/8T65(4RG+(`LC%_&SB
MS%"[%[+>+7_A]0MII@[TBA:'3U9<N;K6CI[-/QS9_]'G\K9'`['@MZ:X8W<,
MELMS),;SY%>6I9R9M;Z^`0%P``#<I\3]`@+C`P``=P(``!@9QG&UC[$$``!L
M`0```@$``````````&5R<FYO:"YD:68````*`!PK&`````"D`4````!`*2,H
M``%)8[O--3-^8?@#_T?&/&P4[*FC&0QJO$C AT TRS3>40N"Q-:RVFG/QRMPR*N
MV&,?!OBIWN?(W11(TU&VVP(A!CU7CH*UU(*$-E(">7]A%!A_CH/00"XG''+8
M>]5\0F#GMA&]OF9P%R_M\0;,P!QT$TE,0!R2XQYP![`'OZ^V$AP39/4%!-99
MR;=X&[_L"1R9X>Q8)!<"1FUS5EH"9%-FHAE;P3]>@(+%'UKU!.W`D**0K*E0
M*.<*SFIX43)*/0.)B(;P0?^).&DZ-4RF)^='"B=&Q$@$*X$B0=*7/-$:RF\.
M%$Y8\HVGQ--+ELLO]BW;V.7(R;??N(\DRJOI+[2-G`"URUX7/QRQXH<8Y,__
M<M[F^W+^>T[ZW;@M[3L>I>9??K>]4<G=F:>==V4E&92T%L\5$H!/DE1-03S5
MUM;G8E7(/6R%^4%IIWGL-0FU06F1O)ZWD/-D:'#%$/M6",!RFGKLH('0E5%Z
MKIX@``#<I\3]`@)7"0``*@0``!@9Q7$@7_D,```M!0```@$``````````'-T
M870N8P!D:68````*`!PR]`````"D`4````!`*2,H``1#:[O1M-S#S-_`'^W)
M!'`"`97)6RPJ-:56I6W9!<K4C"BZ-]).4<?3=W,A+2?&[__N[FW)``5V\>\^
M\NT`:N-M/7+<8!:ED#UIS:%(Q8V!P^?S\0<JD2A^II<E*XQX/SQH6"TX69S*
M.&4V@,!PI6>8,*CGGT"K"=-&(#+!A<N6IG4)8B4X(6+&G/A8"*&&E9ODU#J)
M0/"`6NHU##G!-#F#!V[\=NY''^2*)9Z9CAZ5Z%W%L,S?Q\>I*Q2*,7<CFG1@
M)'8DF2O9Q3J50GO["&HHS];#JH*,HB>=\RUH6RU*FA;`EQF4%O=`7W3*P"X`
M6Y+L.IU)1-%?PHZ\QF8^WI.^QY<;^X7#OSBVX_N-)P#N316Z!:UUJLNY%%;)
M6Y`4/11(H3,>['I:U##70D\8O]JC7`!=KMC?!3ADJ?;>[X0%5Y='%YOTZ7/N
MY;#G893!MH-RR=(W[IH8!B1"!P7.-:S AT I*7,P%XTTSS$$%F=(#=VQZ625?<Q
M[P?G=C_NB;X1S,5NC*:C]1>3Z1U3;$7&U4GBQF7C>TBCW(C,">HZ AT F/U$*DU
M$PBH-,(3PV[FW"($80M$[NCAZ0O7 AT V_1MAM;38,Z.)R&YMR.F#<KC,7!]&T1
M&<,RDX#8!)8).`,,_L$$X%!HTI,\>SW;F&=Z[P-X=X.!WKGQHG.%JWF#R"]?
MYX!>S>`+VMYMS<U])OUM!P=>'#7"/N-U'#.<%G/`MC2?>JI^OJL^!'7S)E/O
MI"M<%]5=GPU!)(U)]XXBIX+CERYK3@]PX.]QE[R%3_ AT D#`HYLEV.+\-^+NA5
MO>K(MICUVG<_XBO";*=\P[I8J%E[N%4-;8A'SO<:V7Q0ZVR\IY-H\ZSPDH6A
M\CYWL\,Z"&@30;6F6#4LBO*:>=,MI:/L=.$*A9"?R+5%94"^7\?#X2`H[*1P
M?[W#9.;IH!W"UIVAQO%!\U+JN]S9AP_];[J(7 AT L+W!COL:-3=5_*H2LM$VE$
M500JP;[.-LKEVO&OU@,O2WY?&PD$&])8VBP9?_C6JSERC9<\U_`?"E1ZRNMP
M9YNCS\'3=:#RK%9FZ/WY/G[K_QY/KN#@"A AT 5+"D3.I765_Y)4-]!O>W(HVOC
M^=5H.>062S!,E60#*&=YBN8:C$<,%,`PE)A8F&(RGU8D?)X25473\3*5]+1:
MFI&LNU:+YOEJX$P&LI`PGZ\9Y<@#V;,WMC\@='=#RW/*XX8=G8$$P;@<(JO1
M!7)84+W#)D^K0H/X.%YCRH-.$IEEHUKVWA,DZZ-M AT 3HR."\55V]N9"CRL2K1
MOM+LT5U>:$18_=PCG*.#I#C%09V;HO;TC[?8N/4),=`I"L)9O%RKKF`X;/^<
M7D+BZ=0_MG'$M3<&Z7Z8_5XX>.)O"YJZ(3YS:%OQ3\6OH97&IY[_O]OL]_,'
M87CS<O)['>/TYO?\^5WER_7E]=A;J)T49'@#@CI1,*'$)6T36I+%&*"C%VJ%
M.E.R8;%A8Y7%+J1&:+/8CR^*.7Q1X)\CVCYN'B?4-D*-2I45_'5,<8.LXVGO
MS<5<'5^<D1=E AT B$PQ5]^)LD-#-%.7`=2PIH1_5)Z AT N08C=5U31J_+)L9P_K@
M[QC#J`RG';F6CLZ%30.^51R[@XN#L6T(D*UL2T=\RD=4(7']GOM1UOZV_K`Y
MLLZIMGJY<'!0,6SC`Z<]`_N^P:`32I9Y\.QB_\!;8VH&.0+@SJ0P?QW'=^^G
M1"VI?Q`10'L_;G;-SYI\#UE2/(-+:SL"-#G$=]K40:20-9%>R]40+7C,?H\A
MFITQ@```W*?$_0("40L``)X)```8&<5Q<,[+`@``LP$```(!``````````!S
M=&%T7V%S="YS````"@`<?*D`````I`%`````0"DC*``!P6.7K;:CW-)X`_60
M)!%24V,8*;B>NN5H;6U2.K*\53<;ECPY'4VY*3QR^X;&,)'"<Y8&LC+FQR`6
MI3@'Y2I:0G*0NXDY99PDQQXY(Y)`RLX7M5OJ>'LR^T.7)DY0Z_J'6E;&J3B#
MFYP^RFN>FP"7#GF914D<S0TYP]_P^?1\O=S9/CSB)@,P6X*A]H4Y[5'M>E`6
MV(&2?4D!FJW`L=L=95F&FAE%M:;'P!<E`T AT JS?*CPY,0&N,I9CB0I:RO]TR!
MGX31D(:ES@,=ER98`"!`"#*?X*!U3+5H`U%#*^!K+QG?&J^D%4A8QXK<)J`3
MQC3I_M`\:DM3YS8<3.!AWF58E$H>?`$`E9KX%X!?3 AT OBIXG7BMN2TYGJK_U8
MR__E/OT%SZMA0)IVAWDFF)I+MZ?T=3<G\\N*KX+4E$!7$S6FL?@J[LTV7.,D
M3JT=N AT NT&-#LT%TYIYP[-4P\BZR3%T9=G:28->R;7JGS>5(]S$*I$E"O[P<N
M'X]7>![PS-50'4:C[VN&,QQQQ2O3^'CZWK8=8;G/,_<9SAL:/TR?2.*MEQXO
M5T8O69<<7A7PB?:T[/*,``#<I\3]`@)7#```F`L``!@9QG%4$UT!``"_````
M`@$``````````'-T<F9T:6UE+F1I9@`*`!R.2`````"D`4````!`*2,H``"N
M6I:AIN4\UO@#^F,58,;)+=<JA AT O0]-X42,<3 AT L@2QX<7QOBQ3&+RX[[,$#3:
M(0@[O=@]?9,[7+V6-8++G`R`@U7'G#P/32C:4I=:E4Z<Z?IC]A'(&IJ/SJ^*
M(TY//93A!^4R#T#,`#9ESE/Q<R0TM>@*6L>MF*J]I1[+P!HCIN[J&_KOJTIH
M$R;GE^G]K?QK%#QX&ZVZ^^3]#EES5L=K\B$9?]+4S(1Q])93+UX?R7]]4OP)
MILZ(9(\=F```W*?$_0(":0T``)X,```8&<5Q<3TI`0``RP````(!````````
M``!U;6%S:RYC`"YD:68`"@`<9-T`````I`%`````0"DC*```UEJ6L<:A6//`
M'^(M*6I2C AT N4X-PE!Q=.[>Z:O23C9O6"(^-VRBB,@`2-'CN'I$Q14S29:#'W
MSUU&TBK\#+:>#)284VV6=1X>//GO%HIA$)4-$X`!)]36KP>3_1,+&^@6FGR+
M%-N`>@?,G2W]#\N7[#2,IUO"M?:R30Z AT E,8/!,>(LC1?;%E1C&IK)*UN)Y44
M9K3;5SL4<*7?>&_QQ]=9.I]2TV/MH$/7IY^PD6$4F?`;N,$FT.S=W/Q$J8GW
MP^KQ/X6W+/*'W````-RGQ/T"````````````````````````````````````
8`````````````````````````````/R#
`
end

--
				Eric Backus
				ericb%hplsla AT hplabs DOT hp DOT com
				(206) 335-2495

- Raw text -


  webmaster     delorie software   privacy  
  Copyright 2019   by DJ Delorie     Updated Jul 2019