Re: dc: strdup -> bstrdup
On Wed, Dec 06, 2017 at 02:47:13PM +0100, Sebastian Benoit wrote: > Michael W. Bombardieri(m...@ii.net) on 2017.12.06 16:58:27 +0800: > > Hello, > > > > Mostly dc(1) uses its own bstrdup() which exits on error. > > It can be used in two more places. > > i like to read > > if ((a = strdup(b)) == NULL) > err(1, NULL); > > much more than start looking what bstrdup() does... > > bstrdup() is only used in 5 places currently, why not get rid of it? I like the diff so I comitted it. dc uses checking versions of the allocation functions, all prefixed with a b. It's not hard to learn that pattern and using the b functions declutters the code in a good way. -Otto > > /Benno > > > > > - Michael > > > > > > Index: dc.c > > === > > RCS file: /cvs/src/usr.bin/dc/dc.c,v > > retrieving revision 1.19 > > diff -u -p -u -r1.19 dc.c > > --- dc.c29 Nov 2017 14:34:17 - 1.19 > > +++ dc.c6 Dec 2017 08:44:30 - > > @@ -47,8 +47,7 @@ dc_main(int argc, char *argv[]) > > char*buf, *p; > > struct stat st; > > > > - if ((buf = strdup("")) == NULL) > > - err(1, NULL); > > + buf = bstrdup(""); > > /* accept and ignore a single dash to be 4.4BSD dc(1) compatible */ > > optind = 1; > > optreset = 1; > > Index: stack.c > > === > > RCS file: /cvs/src/usr.bin/dc/stack.c,v > > retrieving revision 1.14 > > diff -u -p -u -r1.14 stack.c > > --- stack.c 27 Mar 2016 15:55:13 - 1.14 > > +++ stack.c 6 Dec 2017 08:44:30 - > > @@ -79,9 +79,7 @@ stack_dup_value(const struct value *a, s > > copy->u.num = dup_number(a->u.num); > > break; > > case BCODE_STRING: > > - copy->u.string = strdup(a->u.string); > > - if (copy->u.string == NULL) > > - err(1, NULL); > > + copy->u.string = bstrdup(a->u.string); > > break; > > } > > > >
Re: dc: strdup -> bstrdup
On Wed, Dec 06, 2017 at 04:58:27PM +0800, Michael W. Bombardieri wrote: > Hello, > > Mostly dc(1) uses its own bstrdup() which exits on error. > It can be used in two more places. > > - Michael Committed, thanks -Otto > > > Index: dc.c > === > RCS file: /cvs/src/usr.bin/dc/dc.c,v > retrieving revision 1.19 > diff -u -p -u -r1.19 dc.c > --- dc.c 29 Nov 2017 14:34:17 - 1.19 > +++ dc.c 6 Dec 2017 08:44:30 - > @@ -47,8 +47,7 @@ dc_main(int argc, char *argv[]) > char*buf, *p; > struct stat st; > > - if ((buf = strdup("")) == NULL) > - err(1, NULL); > + buf = bstrdup(""); > /* accept and ignore a single dash to be 4.4BSD dc(1) compatible */ > optind = 1; > optreset = 1; > Index: stack.c > === > RCS file: /cvs/src/usr.bin/dc/stack.c,v > retrieving revision 1.14 > diff -u -p -u -r1.14 stack.c > --- stack.c 27 Mar 2016 15:55:13 - 1.14 > +++ stack.c 6 Dec 2017 08:44:30 - > @@ -79,9 +79,7 @@ stack_dup_value(const struct value *a, s > copy->u.num = dup_number(a->u.num); > break; > case BCODE_STRING: > - copy->u.string = strdup(a->u.string); > - if (copy->u.string == NULL) > - err(1, NULL); > + copy->u.string = bstrdup(a->u.string); > break; > } >
Re: dc: strdup -> bstrdup
Michael W. Bombardieri(m...@ii.net) on 2017.12.06 16:58:27 +0800: > Hello, > > Mostly dc(1) uses its own bstrdup() which exits on error. > It can be used in two more places. i like to read if ((a = strdup(b)) == NULL) err(1, NULL); much more than start looking what bstrdup() does... bstrdup() is only used in 5 places currently, why not get rid of it? /Benno > > - Michael > > > Index: dc.c > === > RCS file: /cvs/src/usr.bin/dc/dc.c,v > retrieving revision 1.19 > diff -u -p -u -r1.19 dc.c > --- dc.c 29 Nov 2017 14:34:17 - 1.19 > +++ dc.c 6 Dec 2017 08:44:30 - > @@ -47,8 +47,7 @@ dc_main(int argc, char *argv[]) > char*buf, *p; > struct stat st; > > - if ((buf = strdup("")) == NULL) > - err(1, NULL); > + buf = bstrdup(""); > /* accept and ignore a single dash to be 4.4BSD dc(1) compatible */ > optind = 1; > optreset = 1; > Index: stack.c > === > RCS file: /cvs/src/usr.bin/dc/stack.c,v > retrieving revision 1.14 > diff -u -p -u -r1.14 stack.c > --- stack.c 27 Mar 2016 15:55:13 - 1.14 > +++ stack.c 6 Dec 2017 08:44:30 - > @@ -79,9 +79,7 @@ stack_dup_value(const struct value *a, s > copy->u.num = dup_number(a->u.num); > break; > case BCODE_STRING: > - copy->u.string = strdup(a->u.string); > - if (copy->u.string == NULL) > - err(1, NULL); > + copy->u.string = bstrdup(a->u.string); > break; > } > >
dc: strdup -> bstrdup
Hello, Mostly dc(1) uses its own bstrdup() which exits on error. It can be used in two more places. - Michael Index: dc.c === RCS file: /cvs/src/usr.bin/dc/dc.c,v retrieving revision 1.19 diff -u -p -u -r1.19 dc.c --- dc.c29 Nov 2017 14:34:17 - 1.19 +++ dc.c6 Dec 2017 08:44:30 - @@ -47,8 +47,7 @@ dc_main(int argc, char *argv[]) char*buf, *p; struct stat st; - if ((buf = strdup("")) == NULL) - err(1, NULL); + buf = bstrdup(""); /* accept and ignore a single dash to be 4.4BSD dc(1) compatible */ optind = 1; optreset = 1; Index: stack.c === RCS file: /cvs/src/usr.bin/dc/stack.c,v retrieving revision 1.14 diff -u -p -u -r1.14 stack.c --- stack.c 27 Mar 2016 15:55:13 - 1.14 +++ stack.c 6 Dec 2017 08:44:30 - @@ -79,9 +79,7 @@ stack_dup_value(const struct value *a, s copy->u.num = dup_number(a->u.num); break; case BCODE_STRING: - copy->u.string = strdup(a->u.string); - if (copy->u.string == NULL) - err(1, NULL); + copy->u.string = bstrdup(a->u.string); break; }