mirror of
git://git.gnu.org.ua/wordsplit.git
synced 2025-04-25 16:19:54 +03:00
Minor improvement
* src/wordsplit.c (expvar): Gracefully handle NULL values in ENV_KV environment. * src/wordsplit.h: Fix typo in a comment. * doc/wordsplit.3: Update.
This commit is contained in:
parent
d97c672079
commit
35b47a80c6
3 changed files with 13 additions and 7 deletions
|
@ -14,7 +14,7 @@
|
|||
.\" You should have received a copy of the GNU General Public License
|
||||
.\" along with Grecs. If not, see <http://www.gnu.org/licenses/>.
|
||||
.\"
|
||||
.TH WORDSPLIT 3 "December 3, 2014" "GRECS" "Grecs User Reference"
|
||||
.TH WORDSPLIT 3 "February 20, 2018" "GRECS" "Grecs User Reference"
|
||||
.SH NAME
|
||||
wordsplit \- split string into words
|
||||
.SH SYNOPSIS
|
||||
|
@ -181,7 +181,8 @@ elements in the array:
|
|||
.IR ws_env [ n ]
|
||||
containing the variable name, and
|
||||
.IR ws_env [ "n+1" ]
|
||||
containing its value.
|
||||
containing its value. If the latter is \fBNULL\fR, the corresponding
|
||||
variable is undefined.
|
||||
.PP
|
||||
More sophisticated variable tables can be implemented using
|
||||
callback function. The \fIws_getvar\fR member should be set to point
|
||||
|
|
|
@ -81,8 +81,8 @@ struct wordsplit
|
|||
void *clos);
|
||||
/* [Input] (!WRDSF_NOCMD) Returns in the memory
|
||||
location pointed to by RET the expansion of
|
||||
the command CMD (LEN bytes nong). If WRDSF_ARGV
|
||||
flag is set, ARGV contains CMD split out to
|
||||
the command CMD (LEN bytes long). If WRDSO_ARGV
|
||||
option is set, ARGV contains CMD split out to
|
||||
words. Otherwise ARGV is NULL.
|
||||
|
||||
See ws_getvar for a discussion of possible
|
||||
|
|
|
@ -1034,9 +1034,14 @@ expvar (struct wordsplit *wsp, const char *str, size_t len,
|
|||
rc = wordsplit_find_env (wsp, str, i, &vptr);
|
||||
if (rc == WRDSE_OK)
|
||||
{
|
||||
value = strdup (vptr);
|
||||
if (!value)
|
||||
rc = WRDSE_NOSPACE;
|
||||
if (vptr)
|
||||
{
|
||||
value = strdup (vptr);
|
||||
if (!value)
|
||||
rc = WRDSE_NOSPACE;
|
||||
}
|
||||
else
|
||||
rc = WRDSE_UNDEF;
|
||||
}
|
||||
else if (wsp->ws_flags & WRDSF_GETVAR)
|
||||
rc = wsp->ws_getvar (&value, str, i, wsp->ws_closure);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue