[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: strchr() vs. ber_bvchr()
> Pierangelo Masarati writes:
>> I've also added the ber_bv[r]chr_{left,right}() calls that after
>> locating
>> the desired char, turn the first argument into a berval containing the
>> requested portion of the input one; so, for example,
>>
>> struct berval bv = { 16, "0123456789abcdef" }, out;
>>
>> ber_bvchr_left( &out, &bv, 'a' );
>> /* sets out = { 10, "0123456789" } */
>>
>> ber_bvchr_right( &out, &bv, 'a' );
>> /* sets out = { 6, "abcdef" } */
>
> Please rename these. The names seem confusing to me. In particular
> ber_bvchr_left()'s function is different from anything I expected from
> the name. Maybe ber_substr_to[r]chr() and ber_substr_from[r]chr(),
> though those are a bit long.
I'm not quite comfortable with to/from as well; left/right indicates what
portion of the original berval should be returned in case of match. What
about leading/trailing, or start/end, or first/last?
>
>> However I'm unsure about the semantics when the char is not found:
>> should they return a NULL berval or a berval respectively set to the
>> whole input value (left) and to an empty value (the right)?
>
> Whatever is most convenient, as long as the name doesn't indicate the
> opposite:-)
I guess setting the berval to BVNULL is mostly appropriate, at least to
recall the behavior of the original functions. In any case, I don't see
an urgent need for these calls now. I might axe them before they get ever
used.
p.
--
Pierangelo Masarati
mailto:pierangelo.masarati@sys-net.it
Ing. Pierangelo Masarati
Responsabile Open Solution
SysNet s.n.c.
Via Dossi, 8 - 27100 Pavia - ITALIA
http://www.sys-net.it
------------------------------------------
Office: +39.02.23998309
Mobile: +39.333.4963172
Email: pierangelo.masarati@sys-net.it
------------------------------------------