mirror of
https://github.com/zsh-users/zsh
synced 2024-07-21 10:14:19 +00:00
36491: Multibyte support for parameter expansion flags B,E,N
This commit is contained in:
parent
c76f4f96a6
commit
8b1676e3b7
|
@ -1,3 +1,8 @@
|
|||
2015-09-12 Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>
|
||||
|
||||
* 36491: Src/glob.c, Test/D07multibyte.ztst: Multibyte
|
||||
support for the parameter expansion flags B, E and N.
|
||||
|
||||
2015-09-11 Daniel Shahaf <d.s@daniel.shahaf.name>
|
||||
|
||||
* 36443: Doc/Zsh/zle.yo Src/Zle/zle_refresh.c: Set
|
||||
|
|
|
@ -2491,17 +2491,17 @@ get_match_ret(char *s, int b, int e, int fl, char *replstr,
|
|||
ll += 1 + (l - (e - b));
|
||||
if (fl & SUB_BIND) {
|
||||
/* position of start of matched portion */
|
||||
sprintf(buf, "%d ", b + 1);
|
||||
sprintf(buf, "%d ", MB_METASTRLEN2END(s, 0, s+b) + 1);
|
||||
ll += (bl = strlen(buf));
|
||||
}
|
||||
if (fl & SUB_EIND) {
|
||||
/* position of end of matched portion */
|
||||
sprintf(buf + bl, "%d ", e + 1);
|
||||
sprintf(buf + bl, "%d ", MB_METASTRLEN2END(s, 0, s+e) + 1);
|
||||
ll += (bl = strlen(buf));
|
||||
}
|
||||
if (fl & SUB_LEN) {
|
||||
/* length of matched portion */
|
||||
sprintf(buf + bl, "%d ", e - b);
|
||||
sprintf(buf + bl, "%d ", MB_METASTRLEN2END(s+b, 0, s+e));
|
||||
ll += (bl = strlen(buf));
|
||||
}
|
||||
if (bl)
|
||||
|
|
|
@ -293,6 +293,21 @@
|
|||
>Ἐν ἀρχῇ ἦν ὁ λόγος, καὶ ὁ λόγος ἦν πρὸς τὸν θεόν, καὶ ἦν ὁ λόγος
|
||||
>Ἐν ἀρχῇ ἦν ὁ λόγος, καὶ ὁ λόγος ἦν πρὸς τὸν θεόν, καὶ
|
||||
|
||||
a="1ë34ë6"
|
||||
print ${(BEN)a#*4}
|
||||
print ${(BEN)a##*ë}
|
||||
print ${(BEN)a%4*}
|
||||
print ${(BEN)a%%ë*}
|
||||
print ${(SBEN)a#ë3}
|
||||
print ${(SBEN)a%4ë}
|
||||
0:Flags B, E, N and S in ${...#...} and ${...%...}
|
||||
>1 5 4
|
||||
>1 6 5
|
||||
>4 7 3
|
||||
>2 7 5
|
||||
>2 4 2
|
||||
>4 6 2
|
||||
|
||||
foo=(κατέβην χθὲς εἰς Πειραιᾶ)
|
||||
print ${(l.3..¥.r.3..£.)foo}
|
||||
print ${(l.4..¥.r.2..£.)foo}
|
||||
|
|
Loading…
Reference in a new issue