diff options
author | Sigrid <ftrvxmtrx@gmail.com> | 2021-05-03 21:04:39 +0200 |
---|---|---|
committer | Sigrid <ftrvxmtrx@gmail.com> | 2021-05-03 21:04:39 +0200 |
commit | 5e81cc48bdb00a3e7ae3334728659b8f014248da (patch) | |
tree | c1ba288f641ce75f8614d9e30a28df7e7eda7316 | |
parent | b66bffe91c2b0fac63a5124b968e807d5e73729e (diff) | |
download | plan9front-5e81cc48bdb00a3e7ae3334728659b8f014248da.tar.xz |
libtags: upstream updates
-rw-r--r-- | sys/src/cmd/audio/libtags/it.c | 4 | ||||
-rw-r--r-- | sys/src/cmd/audio/libtags/mod.c | 5 | ||||
-rw-r--r-- | sys/src/cmd/audio/libtags/tags.c | 15 | ||||
-rw-r--r-- | sys/src/cmd/audio/libtags/tagspriv.h | 2 | ||||
-rw-r--r-- | sys/src/cmd/audio/libtags/xm.c | 5 |
5 files changed, 16 insertions, 15 deletions
diff --git a/sys/src/cmd/audio/libtags/it.c b/sys/src/cmd/audio/libtags/it.c index 6b5c5f0fe..600792346 100644 --- a/sys/src/cmd/audio/libtags/it.c +++ b/sys/src/cmd/audio/libtags/it.c @@ -3,12 +3,12 @@ int tagit(Tagctx *ctx) { - char d[4+26+1], o[26*UTFmax+1]; + uchar d[4+26+1], o[26*2+1]; if(ctx->read(ctx, d, 4+26) != 4+26 || memcmp(d, "IMPM", 4) != 0) return -1; d[4+26] = 0; - if(cp437toutf8(o, sizeof(o), d+4, 26) > 0) + if(iso88591toutf8(o, sizeof(o), d+4, 26) > 0) txtcb(ctx, Ttitle, "", o); return 0; diff --git a/sys/src/cmd/audio/libtags/mod.c b/sys/src/cmd/audio/libtags/mod.c index fe5bd4a01..62b7d51b1 100644 --- a/sys/src/cmd/audio/libtags/mod.c +++ b/sys/src/cmd/audio/libtags/mod.c @@ -16,6 +16,7 @@ static char *variants[] = "CD81", "OCTA", "OKTA", + "10CH", "16CN", "32CN", nil, @@ -24,7 +25,7 @@ static char *variants[] = int tagmod(Tagctx *ctx) { - char d[20], o[20*UTFmax+1]; + uchar d[20], o[20*2+1]; int i; if(ctx->seek(ctx, 1080, 0) != 1080) @@ -41,7 +42,7 @@ tagmod(Tagctx *ctx) return -1; if(ctx->read(ctx, d, 20) != 20) return -1; - if(cp437toutf8(o, sizeof(o), d, 20) > 0) + if(iso88591toutf8(o, sizeof(o), d, 20) > 0) txtcb(ctx, Ttitle, "", o); return 0; diff --git a/sys/src/cmd/audio/libtags/tags.c b/sys/src/cmd/audio/libtags/tags.c index 4627511fe..684fd26c7 100644 --- a/sys/src/cmd/audio/libtags/tags.c +++ b/sys/src/cmd/audio/libtags/tags.c @@ -41,19 +41,20 @@ tagscallcb(Tagctx *ctx, int type, const char *k, char *s, int offset, int size, char *e; if(f == nil && size == 0){ - while(*s <= ' ' && *s) + while((uchar)*s <= ' ' && *s) s++; e = s + strlen(s); - while(e != s && e[-1] <= ' ') + while(e != s && (uchar)e[-1] <= ' ') e--; *e = 0; } - if(type != Tunknown){ - ctx->found |= 1<<type; - ctx->num++; - } - if(*s) + if(*s){ ctx->tag(ctx, type, k, s, offset, size, f); + if(type != Tunknown){ + ctx->found |= 1<<type; + ctx->num++; + } + } } int diff --git a/sys/src/cmd/audio/libtags/tagspriv.h b/sys/src/cmd/audio/libtags/tagspriv.h index f77a21651..31e2e70ed 100644 --- a/sys/src/cmd/audio/libtags/tagspriv.h +++ b/sys/src/cmd/audio/libtags/tagspriv.h @@ -41,4 +41,4 @@ void cbvorbiscomment(Tagctx *ctx, char *k, char *v); void tagscallcb(Tagctx *ctx, int type, const char *k, char *s, int offset, int size, Tagread f); -#define txtcb(ctx, type, k, s) tagscallcb(ctx, type, k, (const char*)s, 0, 0, nil) +#define txtcb(ctx, type, k, s) tagscallcb(ctx, type, k, (char*)s, 0, 0, nil) diff --git a/sys/src/cmd/audio/libtags/xm.c b/sys/src/cmd/audio/libtags/xm.c index 7e97c7b54..8f070262f 100644 --- a/sys/src/cmd/audio/libtags/xm.c +++ b/sys/src/cmd/audio/libtags/xm.c @@ -3,12 +3,11 @@ int tagxm(Tagctx *ctx) { - char d[17+20+1], o[20*UTFmax+1], *s; + char d[17+20+1], o[20*UTFmax+1]; - if(ctx->read(ctx, d, 17+20) != 17+20 || memcmp(d, "Extended Module: ", 17) != 0) + if(ctx->read(ctx, d, 17+20) != 17+20 || cistrncmp(d, "Extended Module: ", 17) != 0) return -1; d[17+20] = 0; - for(s = d+17; *s == ' '; s++); if(cp437toutf8(o, sizeof(o), d+17, 20) > 0) txtcb(ctx, Ttitle, "", o); |