X-Git-Url: https://git.tld-linux.org/?p=packages%2Fcoreutils.git;a=blobdiff_plain;f=coreutils-fmt-wchars.patch;h=e82dde10be6df065855969cbf15af929e17ea2c1;hp=6f05bc178749ca25065e8703704a4c5ae900dc3c;hb=HEAD;hpb=175bf3c29b6b58ce4a3ded69bb3fec29ce982207 diff --git a/coreutils-fmt-wchars.patch b/coreutils-fmt-wchars.patch index 6f05bc1..066adfd 100644 --- a/coreutils-fmt-wchars.patch +++ b/coreutils-fmt-wchars.patch @@ -24,9 +24,9 @@ #include +#include + #include #include #include - #include @@ -40,7 +41,7 @@ /* The following parameters represent the program's idea of what is "best". Adjust to taste, subject to the caveats given. */ @@ -83,13 +83,13 @@ + /* Extra ctype(3)-style macros. */ --#define isopen(c) (strchr ("(['`\"", c) != NULL) --#define isclose(c) (strchr (")]'\"", c) != NULL) --#define isperiod(c) (strchr (".?!", c) != NULL) +-#define isopen(c) (strchr ("(['`\"", c) != nullptr) +-#define isclose(c) (strchr (")]'\"", c) != nullptr) +-#define isperiod(c) (strchr (".?!", c) != nullptr) +#define isopen(c) \ -+ (wcschr (L"(['`\"\u2018\u201A\u201B\u201C\u201E\u201F", c) != NULL) -+#define isclose(c) (wcschr (L")]'\"\u2018\u2019\u201C\u201D", c) != NULL) -+#define isperiod(c) (wcschr (L".?!", c) != NULL) ++ (wcschr (L"(['`\"\u2018\u201A\u201B\u201C\u201E\u201F", c) != nullptr) ++#define isclose(c) (wcschr (L")]'\"\u2018\u2019\u201C\u201D", c) != nullptr) ++#define isperiod(c) (wcschr (L".?!", c) != nullptr) /* Size of a tab stop, for expansion on input and re-introduction on output. */ @@ -97,9 +97,9 @@ /* Static attributes determined during input. */ -- const char *text; /* the text of the word */ +- char const *text; /* the text of the word */ - int length; /* length of this word */ -+ const wchar_t *text; /* the text of the word */ ++ wchar_t const *text; /* the text of the word */ + int length; /* length of this word, in characters */ + int width; /* width of this word, in columns */ int space; /* the size of the following space */ @@ -116,7 +116,7 @@ }; @@ -154,16 +175,16 @@ static void set_prefix (char *p); - static void fmt (FILE *f); + static bool fmt (FILE *f, char const *); static bool get_paragraph (FILE *f); -static int get_line (FILE *f, int c); -static int get_prefix (FILE *f); @@ -145,7 +145,7 @@ +static int sentence_space; + /* Prefix minus leading and trailing spaces (default ""). */ --static const char *prefix; +-static char const *prefix; +static wchar_t *prefix; /* User-supplied maximum line width (default WIDTH). The only output @@ -214,12 +214,12 @@ -g, --goal=WIDTH goal width (default of 93% of width)\n\ "), stdout); @@ -311,6 +336,7 @@ - {"split-only", no_argument, NULL, 's'}, - {"tagged-paragraph", no_argument, NULL, 't'}, - {"uniform-spacing", no_argument, NULL, 'u'}, -+ {"single-spaces", no_argument, NULL, 'n'}, - {"width", required_argument, NULL, 'w'}, - {"goal", required_argument, NULL, 'g'}, + {"split-only", no_argument, nullptr, 's'}, + {"tagged-paragraph", no_argument, nullptr, 't'}, + {"uniform-spacing", no_argument, nullptr, 'u'}, ++ {"single-spaces", no_argument, nullptr, 'n'}, + {"width", required_argument, nullptr, 'w'}, + {"goal", required_argument, nullptr, 'g'}, {GETOPT_HELP_OPTION_DECL}, @@ -335,9 +361,10 @@ atexit (close_stdout); @@ -240,7 +240,7 @@ - while ((optchar = getopt_long (argc, argv, "0123456789cstuw:p:g:", + while ((optchar = getopt_long (argc, argv, "0123456789cstunw:p:g:", - long_options, NULL)) + long_options, nullptr)) != -1) switch (optchar) @@ -378,6 +405,10 @@ @@ -296,7 +296,7 @@ + *s = L'\0'; } - /* read file F and send formatted output to stdout. */ + /* Read F and send formatted output to stdout. @@ -550,24 +587,24 @@ static bool get_paragraph (FILE *f) @@ -338,8 +338,8 @@ +static wint_t +copy_rest (FILE *f, wint_t c) { -- const char *s; -+ const wchar_t *s; +- char const *s; ++ wchar_t const *s; out_column = 0; - if (in_column > next_prefix_indent || (c != '\n' && c != EOF)) @@ -413,7 +413,7 @@ + word_limit->width += xwcwidth (c); + c = xgetwc (f); } -- while (c != EOF && !isspace (c)); +- while (c != EOF && !c_isspace (c)); - in_column += word_limit->length = wptr - word_limit->text; + while (c != WEOF && !isspace (c)); + word_limit->length = wptr - word_limit->text; @@ -465,8 +465,8 @@ prefix_lead_space : in_column; else { -- const char *p; -+ const wchar_t *p; +- char const *p; ++ wchar_t const *p; next_prefix_indent = in_column; - for (p = prefix; *p != '\0'; p++) + for (p = prefix; *p != L'\0'; p++) @@ -611,7 +611,7 @@ + word_limit->width = saved_width; } - /* Return the constant component of the cost of breaking before the + /* Work around . */ @@ -932,33 +975,33 @@ else if ((this - 1)->punct) cost -= PUNCT_BONUS; @@ -678,8 +678,8 @@ static void put_word (WORD *w) { -- const char *s; -+ const wchar_t *s; +- char const *s; ++ wchar_t const *s; int n; s = w->text;