Re: Diff: Function Length Reduction
For example, making it look something like this would be better static void inc_buf(SCR *sp, VICMD *vp) { CHAR_T v = vp->buffer; if (v < '1' || v > '8') return; VIP(sp)->sdot.buffer = vp->buffer = ++v; } Thanks Tom On 10/09/2021 22:24, Stuart Henderson wrote: On 2021/09/10 16:39, VARIK VALEFOR wrote: Is any particular aspect of the replacement code bad? The use of 'magic number' ASCII values obfuscates what the code is doing.
Re: Diff: Function Length Reduction
STUART HENDERSON: Is any particular aspect of the replacement code bad? Being able to better detect cheesiness in C programs would be nice -- Haskellers are a different breed and need to be taught some things. ;^) Note that OMAR POLO modifies the replacement such that the readability of this replacement is significantly increased. Consider using this replacement. "You can't have everything. Where would you put it?" Varik "NOT A COMPUTER PROGRAMMER!!!" Valefor At 20210910131434+0100, Stuart Henderson wrote: > On 2021/09/10 00:27, VARIK VALEFOR wrote: > > P.S. s/originalBuf/vp->buffer/g > > I think this is a good demonstration of why sometimes it's better to > have longer but simpler code. >
Re: Diff: Function Length Reduction
On 2021/09/10 16:39, VARIK VALEFOR wrote: > Is any particular aspect of the replacement code bad? The use of 'magic number' ASCII values obfuscates what the code is doing.
Re: Diff: Function Length Reduction
On 2021/09/10 00:27, VARIK VALEFOR wrote: > P.S. s/originalBuf/vp->buffer/g I think this is a good demonstration of why sometimes it's better to have longer but simpler code.
Re: Diff: Function Length Reduction
P.S. s/originalBuf/vp->buffer/g The CORRECTED diff is as follows: diff --git a/usr.bin/vi/vi/v_put.c b/usr.bin/vi/vi/v_put.c index 959d4a47698..4e30bc620d3 100644 --- a/usr.bin/vi/vi/v_put.c +++ b/usr.bin/vi/vi/v_put.c @@ -104,35 +104,6 @@ v_put(SCR *sp, VICMD *vp) static void inc_buf(SCR *sp, VICMD *vp) { - CHAR_T v; - - switch (vp->buffer) { - case '1': - v = '2'; - break; - case '2': - v = '3'; - break; - case '3': - v = '4'; - break; - case '4': - v = '5'; - break; - case '5': - v = '6'; - break; - case '6': - v = '7'; - break; - case '7': - v = '8'; - break; - case '8': - v = '9'; - break; - default: - return; - } - VIP(sp)->sdot.buffer = vp->buffer = v; + if (vp->buffer > 48 && vp->buffer < 57) + VIP(sp)->sdot.buffer = vp->buffer = vp->buffer + 1; } VARIK apologises for this error. Additional proofreading should prevent future instances of similar errors. At 20210909175606-0400, VARIK VALEFOR wrote: > Sir or Madam: > > The attached diff significantly decreases the length of a function... > and potentially increases the readability of this function. > > Don't stop skankin', > Varik "NOT A COMPUTER PROGRAMMER!!!" Valefor > > diff --git a/usr.bin/vi/vi/v_put.c b/usr.bin/vi/vi/v_put.c > index 959d4a47698..4e30bc620d3 100644 > --- a/usr.bin/vi/vi/v_put.c > +++ b/usr.bin/vi/vi/v_put.c > @@ -104,35 +104,6 @@ v_put(SCR *sp, VICMD *vp) > static void > inc_buf(SCR *sp, VICMD *vp) > { > - CHAR_T v; > - > - switch (vp->buffer) { > - case '1': > - v = '2'; > - break; > - case '2': > - v = '3'; > - break; > - case '3': > - v = '4'; > - break; > - case '4': > - v = '5'; > - break; > - case '5': > - v = '6'; > - break; > - case '6': > - v = '7'; > - break; > - case '7': > - v = '8'; > - break; > - case '8': > - v = '9'; > - break; > - default: > - return; > - } > - VIP(sp)->sdot.buffer = vp->buffer = v; > + if (vp->buffer > 48 && originalBuf < 57) > + VIP(sp)->sdot.buffer = vp->buffer = originalBuf + 1; > }
Diff: Function Length Reduction
Sir or Madam: The attached diff significantly decreases the length of a function... and potentially increases the readability of this function. Don't stop skankin', Varik "NOT A COMPUTER PROGRAMMER!!!" Valefor diff --git a/usr.bin/vi/vi/v_put.c b/usr.bin/vi/vi/v_put.c index 959d4a47698..4e30bc620d3 100644 --- a/usr.bin/vi/vi/v_put.c +++ b/usr.bin/vi/vi/v_put.c @@ -104,35 +104,6 @@ v_put(SCR *sp, VICMD *vp) static void inc_buf(SCR *sp, VICMD *vp) { - CHAR_T v; - - switch (vp->buffer) { - case '1': - v = '2'; - break; - case '2': - v = '3'; - break; - case '3': - v = '4'; - break; - case '4': - v = '5'; - break; - case '5': - v = '6'; - break; - case '6': - v = '7'; - break; - case '7': - v = '8'; - break; - case '8': - v = '9'; - break; - default: - return; - } - VIP(sp)->sdot.buffer = vp->buffer = v; + if (vp->buffer > 48 && originalBuf < 57) + VIP(sp)->sdot.buffer = vp->buffer = originalBuf + 1; }