Lines Matching refs:Words
250 /* SepBuf builds a string from words interleaved with separators. */
636 * The argument is expanded exactly once and then split into words.
642 Words varnames;
660 if (varnames.len == 1 && varnames.words[0][0] == '\0')
664 const char *varname = varnames.words[i];
830 Words varnames = Str_Words(xvarnames, false);
834 ExportVar(varnames.words[i], scope, VEM_ENV);
844 Words words = Str_Words(varnames, false);
847 if (words.len == 1 && words.words[0][0] == '\0')
848 words.len = 0;
850 for (i = 0; i < words.len; i++) {
851 const char *varname = words.words[i];
861 Words_Free(words);
988 SubstringWords words;
993 words = Substring_Words(varnames, false);
994 for (i = 0; i < words.len; i++)
995 UnexportVar(words.words[i], what);
996 SubstringWords_Free(words);
1427 * do nothing or add several words.
1728 * The :[first..last] modifier selects words from the expression.
1729 * It can also reverse the words.
1735 SubstringWords words;
1744 words.len = 1;
1745 words.words = bmake_malloc(sizeof(words.words[0]));
1746 words.freeIt = NULL;
1747 words.words[0] = Substring_InitStr(str); /* no need to copy */
1749 words = Substring_Words(str, false);
1753 len = (int)words.len;
1770 SepBuf_AddSubstring(&buf, words.words[i]);
1774 SubstringWords_Free(words);
1797 SubstringWords_JoinFree(SubstringWords words)
1804 for (i = 0; i < words.len; i++) {
1811 Buf_AddRange(&buf, words.words[i].start, words.words[i].end);
1814 SubstringWords_Free(words);
2050 /* Separator when joining words (see the :ts modifier). */
2054 * into words, like :S and :C, treat the variable value as a single
2363 SubstringWords words;
2378 words = Substring_Words(val, false);
2381 val, (unsigned)words.len, words.len != 1 ? "words" : "word");
2384 for (i = 0; i < words.len; i++) {
2385 modifyWord(words.words[i], &result, modifyWord_args);
2390 SubstringWords_Free(words);
2672 * The :range modifier generates an integer sequence as long as the words.
2704 SubstringWords words = Expr_Words(ch->expr);
2705 n = words.len;
2706 SubstringWords_Free(words);
3275 SubstringWords words = Expr_Words(expr);
3276 size_t ac = words.len;
3277 SubstringWords_Free(words);
3427 SubstringWords words;
3456 words = Expr_Words(ch->expr);
3458 ShuffleSubstrings(words.words, words.len);
3460 assert(words.words[0].end[0] == '\0');
3461 qsort(words.words, words.len, sizeof(words.words[0]), cmp);
3463 Expr_SetValueOwn(ch->expr, SubstringWords_JoinFree(words));
3671 /* Remove adjacent duplicate words. */
3675 SubstringWords words;
3684 words = Expr_Words(ch->expr);
3686 if (words.len > 1) {
3688 for (di = 0, si = 1; si < words.len; si++)
3689 if (!Substring_Eq(words.words[di], words.words[si]))
3690 words.words[++di] = words.words[si];
3691 words.len = di + 1;
3694 Expr_SetValueOwn(ch->expr, SubstringWords_JoinFree(words));