[comp.binaries.mac] Adventures in Programming -- init cdev

johnr@runx.ips.oz.au (John Rotenstein) (02/09/89)

[Adventures in Programming -- init cdev]

What do you get when you cross a journalist with a programmer?

The "Adventures in Programming" series describes the development of a
number of public domain programs.  Share the joy, anger and amazement
of writing a program as you learn new techniques which may save an
insurmountable time in the future.  A new form of public domain
journalism.

This adventure describes the development of init cdev, a utility which
manages the usage of INIT files.  Discover hints in writing INITs and
cdevs as you journey the uncharted paths of Macintosh...

Copyright 1988 by John Rotenstein
Printed reproduction requires written permission from the Author

johnr@runx.ips.oz.au (John Rotenstein)

---
(This file must be converted with BinHex 4.0)

:&fPZDA3JBf4PGL""C(CPER4eFQ8ZFfPd!&0*9#&6593K!*!%'3F!N!5`%&0*9#%
!!3!!'3Gb6'&e!3#3#!)63@4fC@jdGA*P,@PZDA3JBf4PGJ!F!RJ!!,#Z!"`b!2r
r!3#3#N$ff!!F!TB!![e@!*!((PG%3Nj08eG%!3#IbTT3RmUD9`#3"L`!N!FBJ3!
!&4!!N!C"8IjS!"K)X'$"%e3-+L5iBU#&J3d"2!5`BL*%La3I1S")SZ#+MJa"F[6
BFH)+(3!i3,6LN58)L(BmaL3BJ+#*K!YckYbT-iJa&i)+*$*35LM4J3++#3%!U+C
6RP#M5YdCK)bG-QlSe*&6CJk)0'j!3*(cjSbF-'hDJ$fMikZE0(4!M#&6aNk$"NP
!S!P$"N3B0RI#j2%D1'ZC[R6Hb18DKNiC[h,TfR%"3NLGZ(RGe#dM4bpI%'IH[1R
,H-kEX)P"N!"4E*Tb%$111rpP``,bh,TI[FkT!`I1QcQ(3D3@mpKdQq*[j-4pB`B
%eZ4YhY5C`bB2L1PPc04K)ac0@K"h[)p"!b+2G,q!"4-1NeAZkDY[XG+TlYG1Q$4
X`SKK8kBfHm5LJG!'HpEGCSGABi5"R@eNh8('GmaeppJBTp&"&RG`X&F''j44J3C
Rf5Ah'&c#LEB'#-Bp4NFDaefA&AiJj%AA''R3e4G[TpNQ'AMLNAGFA'd8+!GFR+8
4"JJ4hT%F(GjT0XFF,M6JiB3lJJ@#Ef$&PFBFY89)i9E!e5B0@#3D1!eP5@LTQf)
*XX&IAm3PZ##*!lS4aKPGaHK%%P68CU"IE[3P"4&&@!%##'EJea9P8p3a(U++HK8
'9pF""kGe6$iQ64*l8J(#$$'!d%3Cil'hC4[6q1A9'f-N1%FDTmeQ(9GQJ1M''-&
CQB3EVp)PDKJdC[8EH6PQL+GA59M4JJ`ef!"SAmV18)--88k*)SY`m)FSX'TfeaL
Nr+hD("ej`*%R0Ccb@8eYe"KBcE-J8$0SSHqL30ah8p!aU9C`e$C%K4H+T5&hri%
`""UL!GGCSZ'#`08FjSkaiPA9TH!AT@AJJ4CBKp9Qj9p`l%AFLQdL+3GGFY4Q4R+
!@THZT`p,*`HZ#&CiRfCph3&ANa+fJ@CcZcekC-aEiHSF(P[5`H9AhE,a"Pr"&C`
aUCFG9Zf(5,T"Af#BXTBB()$Ub5HLC,8"JY03jab'9kRTZiD+@$2mQ(6,MB[e()-
jC[E+E+"-'4*[h,&CbYeYL4lAAKh(APalfI&GDQqA!ADQCUFB(SM#PG''EfF059r
"*!BQ+3KZe,%PHdDR&Ye9i1EjFD")ASCNFf#08GTDp18R"jiSjUdjSQrdc4Q8)(M
Bf!Q%I8JTQA(p1BGMF(J&eYA&BDXYel2l*A%DpUhSaKR`dX8Ypieppl,dE,1jerG
`Pj&'Cq5Dfk(b)A*9fmXJa2R'F8[2)9KYH1M8$L+$'rha$`4iN!$-!1GP+!2Q#3q
%XX,m$%G"mA%R6JS#MYJm"DU[R-%0)Q,EKpT3QdbpldTN-3YDe2)pprLUB%5E@Ci
QpCJk#-Y4(b+$If#A+55Ckb`VbT(KbV!fr-aUF+rD6aQLe#LKC@imEiP$(4iMZZZ
XL!eEbP9BJV#f0G4'$0BC3K&!-!AQd#%`A2PEi!CA3UbGCN4K`C0QcX+G"ce[5'+
i$+c#XL@2KF8-h0VK9pa8KM2m"35R+)1qh!-(ka3X8l35N@VHN!!R%-D&@h@3!0A
4NSDQZ&34L-T$NG2Z8*ZZ4-a)EV,1j9"$2r"JVNl@NC[d@&NFhqdYH(jV!2-)D!F
"XHG1H8S0a-S3R"l#J5`d%aH+L$Lc*S&[CCh"A`aTPMrV4!i1hcN5F$)%a-GJmAR
CXp-")b6,%X8VBf0J3ahSmLibE19aGf2QH1EAPFH8NiE#+9FDfN3I!b9[Rq5K8&C
Z4MV&5,-V-U0CEB*'RV9*+&j0N!!1F0jP)-S)`CV%a'B,Q@5iEmD&0qBN3f2kijB
bl8KREVS5Ck"TYZKJc!b*ST&mUN-pppa+FRAcj4UqXmXrC8Na4rU63`@A8SHbCi2
JF@KUX+)IEC9c1)mCArH#`c,aE@qU1GXCh4c@&AdT"jk2'G"i1%DC*c6R5h))dd0
,aEj9D3e6BALEFf"+UN[#KM-2e3`Hi[)`Vp+"-Nh!BID-QF+cT18l&2+9PAU)[i,
j9(TdH9'ESQ5CZ$bR$QFJPYdH)`CJVF%XdJR8$[[bdiFbKQ"@NFp@`MV5)If&RXZ
69(S'!jRR*FFka'P5Aijdc,)BGV5a5fYZr#+'V8,e$'"*4J13!"!'al@3!$KBH@K
d`%QKcI%($dM0bejb0L3k1!BeLK'TBpViQ0kUd'a[%)2M*0V2$!DR45"d$Z`LC#(
T+*'HT#-QJ"C$4-G!4QH"#KcCpJHHREd1UBEMLK6IPkGKdZL3!-a$jHQ#'"EkBUd
*`2VT(0"!Q5Yi4eZlkY9M-"bXa'`B20,TQfGBCjikj'p$DGJ-diDVQ@41UQYbQ8f
-hN+()jc&$2IMX4%UY,4G`H8+B&R0(BV-ie'96P+`-c)GL)$+XLbYKaDk$(N-ak4
[RBBq8NCbJ*F-,bP6q5p@TM'TZZ)r19J("3kP5faB'"``3LC$B(PHA,r6ff31eV8
%JaeRb#+(&&Kd3M68$RG@L54)EY!VD)06r4l6iV4qN96ZPC!!G3CNRFBpCM@D3G(
qjVECNUlS,a2HiiZK5HRc&+c5519d36fCR"045!jFN4KpFX5H0cJDEmrlRFkBC&b
%DI"m0HfY%Xd@(S$'k($UFCJ0V`1f1phXHE9"Q1#Z3VJUGMNZ244VNkLBBMMY6`a
q!6I@T[Y4[8E--BKK8Cj@1EJ#MjN`Q,-5G[#,b80LU6hID[DMHQLlY4'V99[K5Xl
+M4l6b'9p[-X4%4r9ehfjjUkGbCL&0"G@q4a5$)aCJj,$8V!"2BPlMrR3[VD&RpA
H$e*f5U9UYN3KEKGc,eVU9S4i`qk[E'j*U&14BT`fKK2T'(q*IF`d&e8mlhMPQ*[
*LJJIJcmcP1h&hd%"9e+`ZZ$3Qp[P1FpU)(-FPqDK"9R#bUYBpiBIPLp($&89Im[
A`L-"@-Ri*E''!mSBadcGhNSQEeLiSK8jm-UFX$D[BARNE-2&efRXkmcP+09$[3[
Va"ae`aUN&jF0-j`iP*&#9lB6PaDd`!H9H8)6K"##"J6"NU%FN!!DURUkhV`K5mG
T6i*DC(8#Tr-hB!9mi$UN'#RkHX4rS4!Ec'D%XbLX0KN#jeMN,5Sb"EXc%3V#G#b
%kM#)L3PTU&95jq#'%`#*L1f"UR2@PSFcJF$$@+RhNDJ-XGq83Fa+(RpZGY-ak3*
Vh#Lf(HE@"ZL'!MCN24aR'+6&+eQf2DGKD#"3"2!"'82J0-#"I`+Q*!+B2qIQ'Nj
!"*!!J33eFRp*0Ra09ejNX@ck&h9DS8RFKb[le80Ri$5Ga4hfi9T+"!*%d"9V!$K
[X!C4!RqD!AD9Pf'A4akDF4MT`e9NF"Chm&"d-3GVm$@eN3H+Y'U54#*U8!HEXi3
p"%*b-#$F34Ck&'UT-ADQi6'@T6&dpRFl+)8qH#)cQ&k(G)0'NS23p&"mdB4XPMe
$3cFF`hL2SM-E&Nb+m3EF0L5q`P&2KdaXKPpR8!Hd&4k+-5#qBRNQ4Kk&!@mcTRj
(TA&FF4cdB3EAP3Bj#'akSdEEaKRNC4e$L&HXjMp2H$lTpP!VFKbZi490d"Q"*3F
KSdS-YaYRF#ad8"[Z0#3EK6Ai%c*V!cH'BiG005*VFKcKm5df4"H*JM0jCi5CH#A
E`3DV)MY(96[*N@ZA4!Cmq#5eXB9GD%iN8M#pY6RcB4d2XLK5!P4fF(Z)iA4Z)9$
`%@-hY9$@8b$m-5N2"Bhhp@b[BPfU4"EqpBGP+(560'2$4Kjk&LL6dKG*9bPDe'L
KG(H"d`,6B6kG3MaTNKXkd!#(dQH(X9S'``Cbm)CVJ$!rZ!-Uk4CB&'SJ3!)d)!0
#J!1e33)`%!3f-!3fq33hp9!J5@D#3bP+)JFlp6hNT6dYL#'&Y8+)aA!Jp)4Z8el
jJ5ZZ!6XZ99l-")lC3iLVB6D6BRm$CMD-k%1FmACZ8%+L89-HP6fd#(A!SB$Qe%2
Bd4Q')dGabBN9q9!I`JCJBf'2!AlJK'&fJLHGJ3)K0S+r8Q,$%L2+`L`j!)%RD6K
(`Qfaa"9Pd!)X95,")iMNX4TjdR1+k4NRJf*3k4CcjchJ8c"fP#f#m4dH46c@JSd
+`JCaFCGNk$dTpam0iaKlP68dGB+CNjb'%hf@!J+1Fb5mGAZ')4Z`Fb6mm6e-!LN
E3JC4dR`%"J9VdbCUU'BfjQEQe&Z1md*ABTfaB8iA+9+[LCbHe#2$C9X+*j[j)JI
-8J2!%iD0-8(S`eAj-6%EBKd,Q5dN9A+#m@+6&'UQNC*--!@+0!3E`JBS!!8@JJ,
*33BS!!41J"CPB$%V!!)aN!!#YE'GCm!N+$#Lak'L%S+KEN*HM%N(+@#6eV)AVmP
0c60UXm49&K*McJ8qpYQ@$h@M[r+BV)LDk-PQ0rB9cF&E3c*9Cj-d01CV)2!fF"!
AGNCB[S8@))!#!VGP6bFDR6%G`*3pCAGE%1KKLR*Rm)PA"F1LhCPNqp3B,21FC0'
HrEH&i+4Y1FC(APTHXY0C4HF@UG'IraQJ!d)(2b!P@(1N3e4%p%&i3l)CI6'G&(S
%&jUK'pUK(aUL-&UL)(#L+@UM@0'LD%"H0%SE%R+M1GS!PD8A!LC-9pK$GNSHB14
IqKNeIjFSDH@PHH"ILi8eM&S$!)U3!2ca!c(5,68'THUC'R[i-*`RGdI5Uir"V#5
94i8U*aT%)SEcCGEa4YANAj!!G`Cq0(0da49*f6CB!iCL+##+K$"p%5(kQ8hR#NF
208U`HDrMSL6lkK8S%"VUeKJr)+-1a@9BibT8Y$-J!(kCT66Q%KcN13IQ#4Q!*&F
Mq#,N)L$E"k&VmbSI9%b+d80hY"C4%MpPF*1(XV&P`!5VbL488#k2d30AiPP4JfZ
#X38ai!)Z)!0GN!!pfQU60qLbfr)f-XZGD-#KRG%@AJ#c5mZU0@XZ0UPFKr+bF4@
c-pZd&U)$25#L*'U6@CZdA-Zd6ZX&2MZdB"ZVADZMr#J'*1)PSc%KI6G$ljPfm(1
bFI-qi+5YrM%k@FCCaFTCQ$BRhC)K4GGr8Q-R5R5YkSFbf@%V-!J[E)8Ri"NMQa9
E,A-YeS9A2f+[!6T*m04(-A)#Zp8EZ@BNrU9bb&LEa58lF"%P33"PUM+#jkN@%`Z
K6pQGZ8GKhb'SU8%h1IPTfI'EARSCLF%Vq(9Q6J-qMJP-J1N9Ef%dPj9CjZ3GkQD
mJ%4kqD1m1F*SSPGi&GBC4A#G`k@AP[*&XJZYDrBN8GSf'IT3IqQNhVUm9*P*-XH
`h)Zm"1S@,#@AZE'ZJ#3aYB&F%eL4ZX)VP)Q*`m+q6F-U)p8AFIGY-qDCXb8p2hG
b1CJD4$G52"*GiLST%U1rp*'%0Q*4XV19YLJ(@MCFA(%9If%e!X-l5G!#0!!$0i!
LkT'5@3X&@$%&DD!(CB!#-e!E-c#V@4YLLL4k%S-#YjNIHH$%a3J#1&`E1+c%Kp*
m*#S&S88'9!c&@i+E8eaAY4%$0R$'0M#V(Q)i64J'C%C`j9KAX6-IJEL@erK3pjX
MMI-G85`B9#ahF1%9aB8(P!%&"DP"L!YYJe%Ye*H([HCSbXBIEC!!$)GL,AI*TrA
%PamcFfJ'2S9-'6FU+C4L55LL,aMjQN65"N&k*!rbb4aSb#FB5IEc8"%P8QcJ['A
K(QPKQj4%[9Uk2Q5J,E[CB6JA8QrJV&P`(PqLBSQK,c,AA2SS+U2a&lUXVYql[@(
4BQI$PMd%QU5c6e&e'@r3!Yk4@9JdX4"5DVlT[AY-FV"cDqC)EH+ecP"BC@G!ZfE
,0*Uc8)*P9#"3"3U6*[dmU""U1rd90E"cbpD-c`@@8Pc"1IFCIf!h`R+"4BZE9CQ
RLQa%cEKmcC0859VDEc*(H&Y"5ql4!Km+&L1P6!5(d9i%!S#k[IaX0YVl[iBcdc"
R6bcccN[MV6cb,IUa9EXCUCdjGE6m'0%+[p2+*Q(3T5lC3b`),hK#da'&(8331'&
")5Tp-LcYGeK)+3bGb`jGeC+5FrqE)'&"("&+Z#SP"bce(4)S(d&J(c"L3eG8@kD
M,cNieD`b"Q"#'8Z3!&'fdAEP@QT6,Faj)(JjPP*MIFdrip%0$F[q3eY(FYA!NG9
h%"Cld4[aYi!2*G#F3G!Np(#NFL*5$4pm45SILN*e!5[6d9j3VA#8NGAP&aI390A
H3Y0F[G*f!YEi0)Fe#&`pT+64#jPFY@!2dmdPdpYHrG[fq(Uq&NSV!JH@((jKjf,
i9'q"!4IINBGqU6$QP%llK0VV*P'F"ElJC92H-dAq,$6*%eerR!II)3e"%,Yd-!d
YJ%8Fk`B"6''b'955BBbRBAi"UYZT`8mJi+Pdi!3D0pF!"c[+eP6@-3@f4!9Ga(M
AFaqdf5@3!%5)c[JpZ[(2LB-9,[Cl43GPI4&B`*N'4T!!C(LP*,F0Qd!)!N%!'U*
"'S"SKSSa*h13!*)4h9p)5dBAhN80J0F``Z!1[PF36JFSd!DDl3BB*SANeH3@8c!
SN!!T6Hi#e4JA2)"kTH-Q9JkhKS05LmEK,T,APihH8BiN#'GTjA'&ci-IBbJj#6h
-"D*M&KjXEB$K8JJ[5Uja%DMDP!(KD`8`TjNKQX%G[#&HVU-dFJ%Q,,0K6cdKFka
Vp2K1bCKJGViL&0CkVpFA,"c*SH3rL$($%&aJhANNRGe)m[8Jhd-C5K#bM*BAa)C
CD%$6LLHQ9C50@j*$BhSc"[k1'5aU#HXIQB0VTUJYH33q9I4[R%JhaNc4H)@bYK-
mh-%NA)KZ986H'5fEM08Tb(1Pf'E,h(LCa8@!0"cU&,Nf-aiN,Q5ii2SB'F-Yp)'
b*"V[00k4"#FC&aHIE5"B9VGp3+4U8L1pA-8ApMbCPhMZ'cD9NbaXF8CcL!JLqmA
@T)jAGS,V(b[FG6JTGmJI0F@Y1RJ@Ca#(Eme5L50Br2dB-KQ(drk+RC%LQ3FqEQc
bQ2[H$68k5fNbYAAY+DAY"$L9`aQ)d'kbe96bGi,bKX0201cJKa%Z5eMCjiR"$RH
0fF%aZp9jIX8ER@63E*dSH&"R#TSBV`X#4%`@XNN%*Kq(A5)(+FQ5arJB&4L6E@m
L0JN@aEZ62IQ633N$1@!%0Q#6CI6UImFAUZf5%6)Q2-C,lUGGEGGU,SB9XfFGllM
bm2eX1*FVIp8!d3!#5[!'D"!@A[aG`3B@Gj%%NE8L-5@A+HPkUC89Ui8XB6%@BAT
B,63#-p!@258C$8!%)p8@-6!$)1!%&DrZR4%$1B!$10!!rp*)3l+lbXrm54rkS`m
#TDpfMS(k33$4D6#aA[%`R(%9C0!!aSp#D8FDNN-@lZ5!*1FQDk64##-l2k3@*jF
MVDPpa#B(Gf(pT(pm$-KpZ)%'!!@H3'9i!pJ&MG@!hfGIY)83H&"1B!TF!4!J!f#
!$'Kq3D!+6!%U)!@#!"0)!N%J5M!!(L!!`N%2)!T%S!3@J4,i$eUJ#hb"-$!'bN!
A1""U3JdX!3-K!6##("J*"S)$B!)q%!d-"!J`$)EJ-KJ)%D!))-%Q-"!Q3"9SJPH
J#B+"*JJ(QZ"-Q!#'B#"3!*B!!#L!'"J)&8!D1)3)-"!ZJ%!!!"IJ$I3"!,!(!-!
DI)-!S!j)"qRJ"Z1J(33!"3!3))#")!%+!!$BJ`"!!J3!)"!!!%%&+)0[S!b1Jc*
i$JB#"R!'MP!-!J!-J!iFS6XB#"Q!!'$#!i!*fm"!f!!Ti"0'K!h3$`B#"p!#!b%
%i)08k!m'JJKi!+k3!!+i`L``%%J!-UL&d'!JP!"K8!I[3"c`KEi3!#6#1!!!J#%
aA)-e%!Mi38$B"r8J(bb%Ka!!l%*GH!5PB6E3KGp!&ej#!'!#T-"!1!&6i"[LK"1
J(JB$!-J$!-!66S9eb!lAS4m%!J"!!'#!CFJ(mb!c")3f%!!%!"bS$dd!8J!%!f%
!Q)'"3!$F`%!S!)&J)"J!8$!3$N!Q'!J)3")Q!()`%"5!333!$'!I$)3(S!D'B$2
JJlqJ#6j"!$!",L)@e))-!!ck!$!S$I+!$A%$-$%QbN5Cq")0SJ%J#)F3(J`!JZ!
($f)!L)CKF!b@33P3"XrJ"DL#Na!56X*TJ!Ne)3$)!)!`!l3!62J#-'%5k)3$33-
FJ8pB#P-#,%`*-X!8SX+8!!`'JJIJK!$J!k"&%"!5!B!Ua!0`-5jkPlP)"q4LABb
,H#!J%S5E#!B"!$bB#+S`&Ii$9rJ943!Y"!!M)#8#!"+`#h3K,l5'fR!JQ)!I)"Q
MJ'6dKYc`#h,$-5!C&i&N&!@5N4K)4Qc`$62!AVQ,F,%Z[Sd[3"Hp#aiN#!XJ!24
%2#J!!#&Yc)Nl85(L4,p)&!(!#FJ!he!$I%-9m!eV`$HmLVk4#Zb"jEJFfk&cI)l
3F4hQaYHS&`(!!G#%%!!!l%3$N!!ERi)h8!Jh`6U+`aT)%0+JBrb'B3!!2!%!!!8
!J'A8KcK4%JC'h`JFNb-!m)EK-#'-a(LS(3'!*P3!!+!"!)#0!!Zc)e'8KBI`)9`
!Y`J!4%"dI*!!%$*#5XKf#1K2!!!:
---