access_table() challenge - win a Samba t-shirt!

Michael Stockman pgmtekn-micke at algonet.se
Mon Jan 17 15:43:56 GMT 2000


Hello,


> The challenge now is to recode access_table() so that it is as small
> as possible. Right now it is horrendous, but I suspect there is an
> underlying pattern that I have missed.

May I send my proposal then. It straightens the code paths
considerably, at the cost of a slight increase in complexity in some
conditionals. It is 3 lines shorter than the original but could gain
more switching to Kernighan style, which is used in the original. I
have not been able to detect any difference in output from the
function when running the test program.

Best regards
  Michael Stockman
  pgmtekn-micke at algonet.se



begin 666 atable.c
M(VEN8VQU9&4@/'-T9&EO+F@^"B-I;F-L=61E(#QS=&1L:6(N:#X*"F5N=6T@
M>T1%3EE?1$]3+"!$14Y97U)%040L($1%3EE?5U))5$4L($1%3EE?1D-"+"!$
M14Y97T%,3"P at 1$5.65].3TY%?3L*96YU;2![049!24PL05)%040L05=2251%
M+$%!3$Q].PIE;G5M('M$3U-?3U!%3E]21$].3%DL($1/4U]/4$5.7U)$5U(L
M($1/4U]/4$5.7U=23TY,67T["B-D969I;F4 at 0D]/3"!I;G0*"B\J*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ"G)E<')O9'5C92!T:&4@<VAA<F4@;6]D92!A8V-E
M<W,@=&%B;&4*=&AI<R!I<R!H;W)R96YD;V]U<VQY(&-O;7!L97 at L(&%N9"!R
M96%L;'D at 8V%N)W0 at 8F4@:G5S=&EF:65D(&]N(&%N>0IR871I;VYA;"!G<F]U
M;F1S(&5X8V5P="!T:&%T('1H:7,@:7, at 7V5X86-T;'E?('=H870 at 3E0@9&]E
M<RX at 4V5E"G1H92!$14Y9,2!A;F0 at 1$5.63(@=&5S=',@:6X@<VUB=&]R='5R
M92!F;W(@82!C;VUP<F5H96YS:79E('-E="!O9 at IT97-T(')O=71I;F5S+ at HJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*B\*<W1A=&EC(&EN="!A8V-E<W-?=&%B
M;&4Q*&EN="!N97=?9&5N>2QI;G0@;VQD7V1E;GDL:6YT(&]L9%]M;V1E+ H)
M"0D at 0D]/3"!S86UE7W!I9"P at 0D]/3"!I<V5X92D*>PH):68@*&YE=U]D96YY
M(#T]($1%3EE?04Q,('Q\(&]L9%]D96YY(#T]($1%3EE?04Q,*2!R971U<FXH
M049!24PI.PH*"6EF("AS86UE7W!I9"D@>PH)"6EF("AI<V5X92 F)B!O;&1?
M;6]D92 ]/2!$3U-?3U!%3E]21$].3%D@)B8@"@D)("!O;&1?9&5N>2 ]/2!$
M14Y97T1/4R F)B!N97=?9&5N>2 ]/2!$14Y97U)%040I('L*"0D)<F5T=7)N
M($%&04E,.PH)"7T*"0EI9B H(6ES97AE("8F(&]L9%]M;V1E(#T]($1/4U]/
M4$5.7U)$3TY,62 F)B *"0D@(" @;VQD7V1E;GD@/3T at 1$5.65]$3U,@)B8@
M;F5W7V1E;GD@/3T at 1$5.65]$3U,I('L*"0D)<F5T=7)N($%214%$.PH)"7T*
M"0EI9B H;F5W7V1E;GD@/3T at 1$5.65]&0T(@)B8@;VQD7V1E;GD@/3T at 1$5.
M65]$3U,I('L*"0D):68@*&ES97AE*2!R971U<FX at 049!24P["@D)"6EF("AO
M;&1?;6]D92 ]/2!$3U-?3U!%3E]21$].3%DI(')E='5R;B!!1D%)3#L*"0D)
M<F5T=7)N($%!3$P["@D)?0H)"6EF("AO;&1?;6]D92 ]/2!$3U-?3U!%3E]2
M1$].3%D@)B8@;VQD7V1E;GD@/3T at 1$5.65]$3U,I('L*"0D):68@*&YE=U]D
M96YY(#T]($1%3EE?1D-"('Q\(&YE=U]D96YY(#T]($1%3EE?4D5!1"D@>PH)
M"0D):68@*&ES97AE*2!R971U<FX at 05)%040["@D)"0ER971U<FX at 049!24P[
M"@D)"7T*"0E]"@D):68@*&]L9%]D96YY(#T]($1%3EE?1D-"*2!["@D)"6EF
M("AN97=?9&5N>2 ]/2!$14Y97T1/4R!\?"!N97=?9&5N>2 ]/2!$14Y97T9#
M0BD@<F5T=7)N($%!3$P["@D)"7)E='5R;B!!1D%)3#L*"0E]"@E]"@H):68@
M*&]L9%]D96YY(#T]($1%3EE?1$]3('Q\(&YE=U]D96YY(#T]($1%3EE?1$]3
M('Q\( H);VQD7V1E;GD@/3T at 1$5.65]&0T(@?'P@;F5W7V1E;GD@/3T at 1$5.
M65]&0T(I('L*"0EI9B H:7-E>&4I('L*"0D):68@*&]L9%]D96YY(#T]($1%
M3EE?1D-"('Q\(&YE=U]D96YY(#T]($1%3EE?1D-"*2!["@D)"0ER971U<FX@
M049!24P["@D)"7T*"0D):68@*&]L9%]D96YY(#T]($1%3EE?1$]3*2!["@D)
M"0EI9B H;F5W7V1E;GD@/3T at 1$5.65]214%$("8F( H)"0D)*&]L9%]M;V1E
M(#T]($1/4U]/4$5.7U)$3TY,62!\?" *"0D)"2!O;&1?;6]D92 ]/2!$3U-?
M3U!%3E]21%=2*2D@>PH)"0D)"7)E='5R;B!!1D%)3#L*"0D)"7T*"0D)"6EF
M("AN97=?9&5N>2 ]/2!$14Y97U=2251%("8F( H)"0D)*&]L9%]M;V1E(#T]
M($1/4U]/4$5.7U=23TY,62!\?" *"0D)"2!O;&1?;6]D92 ]/2!$3U-?3U!%
M3E]21%=2*2D@>PH)"0D)"7)E='5R;B!!1D%)3#L*"0D)"7T*"0D)"7)E='5R
M;B!!04Q,.PH)"0E]"@D)"6EF("AO;&1?9&5N>2 ]/2!$14Y97TY/3D4I(')E
M='5R;B!!04Q,.PH)"0EI9B H;VQD7V1E;GD@/3T at 1$5.65]214%$*2!R971U
M<FX at 05=2251%.PH)"0EI9B H;VQD7V1E;GD@/3T at 1$5.65]74DE412D@<F5T
M=7)N($%214%$.PH)"7T*"0DO*B!I="!I<VXG="!A(&5X92P at 9&QL+"!S>6T@
M;W(@8V]M(&9I;&4@*B\*"0EI9B H;VQD7V1E;GD@/3T@;F5W7V1E;GD@)B8@
M<V%M95]P:60I"@D)"7)E='5R;BA!04Q,*3L*"@D):68@*&]L9%]D96YY(#T]
M($1%3EE?4D5!1"!\?"!N97=?9&5N>2 ]/2!$14Y97U)%040I(')E='5R;B!!
M1D%)3#L*"0EI9B H;VQD7VUO9&4@/3T at 1$]37T]014Y?4D1/3DQ9*2!R971U
M<FXH05)%040I.PH)"0H)"7)E='5R;BA!1D%)3"D["@E]"@D*"7-W:71C:" H
M;F5W7V1E;GDI( H)"7L*"0EC87-E($1%3EE?5U))5$4Z"@D)"6EF("AO;&1?
M9&5N>3T]1$5.65]74DE412 F)B!O;&1?;6]D93T]1$]37T]014Y?4D1/3DQ9
M*2!R971U<FXH05)%040I.PH)"0EI9B H;VQD7V1E;GD]/41%3EE?4D5!1" F
M)B!O;&1?;6]D93T]1$]37T]014Y?4D1/3DQ9*2!R971U<FXH05=2251%*3L*
M"0D):68@*&]L9%]D96YY/3U$14Y97TY/3D4@)B8@;VQD7VUO9&4]/41/4U]/
M4$5.7U)$3TY,62D@<F5T=7)N*$%!3$PI.PH)"0ER971U<FXH049!24PI.PH)
M"6-A<V4 at 1$5.65]214%$. at H)"0EI9B H;VQD7V1E;GD]/41%3EE?5U))5$4@
M)B8@;VQD7VUO9&4]/41/4U]/4$5.7U=23TY,62D@<F5T=7)N*$%214%$*3L*
M"0D):68@*&]L9%]D96YY/3U$14Y97U)%040@)B8@;VQD7VUO9&4]/41/4U]/
M4$5.7U=23TY,62D@<F5T=7)N*$%74DE412D["@D)"6EF("AO;&1?9&5N>3T]
M1$5.65].3TY%("8F(&]L9%]M;V1E/3U$3U-?3U!%3E]74D].3%DI(')E='5R
M;BA!04Q,*3L*"0D)<F5T=7)N*$%&04E,*3L*"0EC87-E($1%3EE?3D].13H*
M"0D):68@*&]L9%]D96YY/3U$14Y97U=2251%*2!R971U<FXH05)%040I.PH)
M"0EI9B H;VQD7V1E;GD]/41%3EE?4D5!1"D@<F5T=7)N*$%74DE412D["@D)
M"6EF("AO;&1?9&5N>3T]1$5.65].3TY%*2!R971U<FXH04%,3"D["@D)"7)E
M='5R;BA!1D%)3"D["@D)?0H)<F5T=7)N*$%&04E,*3L*?0H*"@IS=&%T:6,@
M:6YT(&%C8V5S<U]T86)L93(H:6YT(&YE=U]D96YY+&EN="!O;&1?9&5N>2QI
M;G0@;VQD7VUO9&4L"@D)"2!"3T],('-A;65?<&ED+"!"3T],(&ES97AE*0I[
M"@EI9B@@;F5W7V1E;GD@/3T at 1$5.65]!3$P@?'P@;VQD7V1E;GD@/3T at 1$5.
M65]!3$P@*0H)"7)E='5R;B!!1D%)3#L*"@EI9B@@<V%M95]P:60@*0H)>PH)
M"6EF*"!O;&1?9&5N>2 ]/2!$14Y97T9#0B I"@D)>PH)"0EI9B@@;F5W7V1E
M;GD@/3T at 1$5.65]$3U,@?'P*"0D)(" @(&YE=U]D96YY(#T]($1%3EE?1D-"
M("D*"0D)"7)E='5R;B!!04Q,.PH)"0ER971U<FX at 049!24P["@D)?0H)"6EF
M*"!I<V5X92 F)B!N97=?9&5N>2 ]/2!$14Y97U)%040@)B8*"0D@(" @;VQD
M7V1E;GD@/3T at 1$5.65]$3U,@)B8*"0D@(" @;VQD7VUO9&4@/3T at 1$]37T]0
M14Y?4D1/3DQ9("D*"0D)<F5T=7)N($%&04E,.PH)?0H*"6EF*"!O;&1?9&5N
M>2 ]/2!$14Y97T1/4R!\?"!O;&1?9&5N>2 ]/2!$14Y97T9#0B I"@D)9V]T
M;R!D;W-?9F-B.PH*"7-W:71C:" H;F5W7V1E;GDI( H)>PH)8V%S92!$14Y9
M7T9#0CH*"6-A<V4 at 1$5.65]$3U,Z"F1O<U]F8V(Z"@D):68H('-A;65?<&ED
M("8F(&YE=U]D96YY(#T]($1%3EE?1D-"("8F(&]L9%]D96YY(#T]($1%3EE?
M1$]3("D*"0E["@D)"6EF*"!I<V5X92!\?"!O;&1?;6]D92 ]/2!$3U-?3U!%
M3E]21$].3%D@*0H)"0D)<F5T=7)N($%&04E,.PH)"0ER971U<FX at 04%,3#L*
M"0E]"@D):68H('-A;65?<&ED("8F("%I<V5X92 I"@D)>PH)"0EI9B@@;VQD
M7V1E;GD@/3T at 1$5.65]$3U,@)B8*"0D)(" @(&YE=U]D96YY(#T]($1%3EE?
M1$]3("8F"@D)"2 @("!O;&1?;6]D92 ]/2!$3U-?3U!%3E]21$].3%D@*0H)
M"0D)<F5T=7)N($%214%$.PH)"0EI9B@@;VQD7V1E;GD@/3T@;F5W7V1E;GD@
M*0H)"0D)<F5T=7)N($%!3$P["@D)?0H)"6EF*"!I<V5X92 I"@D)>PH)"0EI
M9B@@;VQD7V1E;GD@/3T at 1$5.65]$3U,@)B8@;F5W7V1E;GD@(3T at 1$5.65]&
M0T(@)B8*"0D)(" @("$H;F5W7V1E;GD@/3T at 1$5.65]214%$("8F(&]L9%]M
M;V1E("$]($1/4U]/4$5.7U=23TY,62D@)B8*"0D)(" @("$H;F5W7V1E;GD@
M/3T at 1$5.65]74DE412 F)B!O;&1?;6]D92 A/2!$3U-?3U!%3E]21$].3%DI
M("D*"0D)"7)E='5R;B!!04Q,.PH)"0EE;'-E(&EF*"!O;&1?9&5N>2 A/2!$
M14Y97T9#0B F)B!N97=?9&5N>2 A/2!$14Y97T9#0B I"@D)"0EB<F5A:SL*
M"0E]"@D)96QS92!I9B@@;VQD7V1E;GD@(3T at 1$5.65]214%$("8F"@D)"2!N
M97=?9&5N>2 A/2!$14Y97U)%040@)B8*"0D)(&]L9%]M;V1E(#T]($1/4U]/
M4$5.7U)$3TY,62 I"@D)"7)E='5R;B!!4D5!1#L*"0ER971U<FX at 049!24P[
M"@EC87-E($1%3EE?5U))5$4Z"@D):68H(&]L9%]M;V1E("$]($1/4U]/4$5.
M7U)$3TY,62 I"@D)"7)E='5R;B!!1D%)3#L*"0EB<F5A:SL*"6-A<V4 at 1$5.
M65]214%$. at H)"6EF*"!O;&1?;6]D92 A/2!$3U-?3U!%3E]74D].3%D@*0H)
M"0ER971U<FX at 049!24P["@D)8G)E86L["@EC87-E($1%3EE?3D].13H*"0D[
M"@E]"@H)<W=I=&-H*"!O;&1?9&5N>2 I"@E["@EC87-E($1%3EE?5U))5$4Z
M"@D)<F5T=7)N($%214%$.PH)8V%S92!$14Y97U)%040Z"@D)<F5T=7)N($%7
M4DE413L*"6-A<V4 at 1$5.65].3TY%. at H)"7)E='5R;B!!04Q,.PH)?0H)<F5T
M=7)N($%&04E,.PI]"@H*"FUA:6XH*0I["@EI;G0@;V0L(&YD+"!O;2P@<W L
M(&EE.PH*"69O<B H;V0]1$5.65]$3U,[;V0@/#T at 1$5.65].3TY%.R!O9"LK
M*0H)9F]R("AN9#U$14Y97T1/4SMN9" \/2!$14Y97TY/3D4[(&YD*RLI"@EF
M;W(@*&]M/41/4U]/4$5.7U)$3TY,63MO;2 \/2!$3U-?3U!%3E]74D].3%D[
M(&]M*RLI"@EF;W(@*'-P/3 [('-P(#P](#$[('-P*RLI"@EF;W(@*&EE/3 [
M(&EE(#P](#$[(&EE*RLI"@E["@D):68H(&%C8V5S<U]T86)L93$H(&YD+"!O
M9"P@;VTL('-P+"!I92 I("$]( H)"2 @("!A8V-E<W-?=&%B;&4R*"!N9"P@
M;V0L(&]M+"!S<"P@:64@*2 I"@D)>PH)"0EP<FEN=&8H(")F86EL961<;B(@
D*3L*"0D)97AI="@Q*3L*"0E]"@E]"@ER971U<FX@,#L*?0H*
`
end



More information about the samba-technical mailing list