diff --git a/sysutils/colorls/Makefile b/sysutils/colorls/Makefile index a8d4adcd0cc..73b79e50909 100644 --- a/sysutils/colorls/Makefile +++ b/sysutils/colorls/Makefile @@ -1,10 +1,10 @@ -# $OpenBSD: Makefile,v 1.21 2011/06/23 22:50:28 naddy Exp $ +# $OpenBSD: Makefile,v 1.22 2011/09/22 08:28:56 stsp Exp $ COMMENT= ls that can use color to display file attributes DISTNAME= ls-4.8 PKGNAME= color${DISTNAME} -REVISION= 0 +REVISION= 1 CATEGORIES= sysutils MAINTAINER= Christian Weisgerber diff --git a/sysutils/colorls/patches/patch-ls_c b/sysutils/colorls/patches/patch-ls_c index 2f49bd5c2fd..399846f197a 100644 --- a/sysutils/colorls/patches/patch-ls_c +++ b/sysutils/colorls/patches/patch-ls_c @@ -1,7 +1,14 @@ -$OpenBSD: patch-ls_c,v 1.11 2009/10/29 20:10:39 naddy Exp $ ---- ls.c.orig Wed Oct 28 00:59:21 2009 -+++ ls.c Thu Oct 29 20:21:13 2009 -@@ -48,6 +48,10 @@ +$OpenBSD: patch-ls_c,v 1.12 2011/09/22 08:28:56 stsp Exp $ +--- ls.c.orig Tue Oct 19 16:28:14 2010 ++++ ls.c Thu Sep 22 09:41:24 2011 +@@ -42,12 +42,17 @@ + #include + #include + #include ++#include + #include + #include + #include #include #include #include @@ -12,7 +19,7 @@ $OpenBSD: patch-ls_c,v 1.11 2009/10/29 20:10:39 naddy Exp $ #include "ls.h" #include "extern.h" -@@ -90,6 +94,15 @@ int f_statustime; /* use time of last mode change */ +@@ -90,6 +95,15 @@ int f_statustime; /* use time of last mode change */ int f_stream; /* stream format */ int f_type; /* add type character for non-regular files */ int f_typedir; /* add type character for directories */ @@ -28,7 +35,7 @@ $OpenBSD: patch-ls_c,v 1.11 2009/10/29 20:10:39 naddy Exp $ int rval; -@@ -101,6 +114,11 @@ ls_main(int argc, char *argv[]) +@@ -101,7 +115,14 @@ ls_main(int argc, char *argv[]) int ch, fts_options, notused; int kflag = 0; char *p; @@ -38,9 +45,12 @@ $OpenBSD: patch-ls_c,v 1.11 2009/10/29 20:10:39 naddy Exp $ + char *bp = tcapbuf; +#endif ++ setlocale(LC_CTYPE, ""); ++ /* Terminal defaults to -Cq, non-terminal defaults to -1. */ if (isatty(STDOUT_FILENO)) { -@@ -122,7 +140,7 @@ ls_main(int argc, char *argv[]) + if ((p = getenv("COLUMNS")) != NULL) +@@ -122,7 +143,7 @@ ls_main(int argc, char *argv[]) f_listdot = 1; fts_options = FTS_PHYSICAL; @@ -49,7 +59,7 @@ $OpenBSD: patch-ls_c,v 1.11 2009/10/29 20:10:39 naddy Exp $ switch (ch) { /* * The -1, -C and -l, -m, -n and -x options all override each -@@ -176,6 +194,9 @@ ls_main(int argc, char *argv[]) +@@ -176,6 +197,9 @@ ls_main(int argc, char *argv[]) case 'F': f_type = 1; break; @@ -59,7 +69,7 @@ $OpenBSD: patch-ls_c,v 1.11 2009/10/29 20:10:39 naddy Exp $ case 'L': fts_options &= ~FTS_PHYSICAL; fts_options |= FTS_LOGICAL; -@@ -245,11 +266,46 @@ ls_main(int argc, char *argv[]) +@@ -245,11 +269,46 @@ ls_main(int argc, char *argv[]) if (f_grouponly == -1) f_grouponly = 0; diff --git a/sysutils/colorls/patches/patch-util_c b/sysutils/colorls/patches/patch-util_c index f4de3f9e616..2d040d6ab43 100644 --- a/sysutils/colorls/patches/patch-util_c +++ b/sysutils/colorls/patches/patch-util_c @@ -1,7 +1,66 @@ -$OpenBSD: patch-util_c,v 1.6 2009/10/29 20:10:39 naddy Exp $ +$OpenBSD: patch-util_c,v 1.7 2011/09/22 08:28:56 stsp Exp $ --- util.c.orig Wed Oct 28 00:59:21 2009 -+++ util.c Thu Oct 29 20:21:26 2009 -@@ -59,7 +59,11 @@ void ++++ util.c Thu Sep 22 09:53:40 2011 +@@ -41,10 +41,12 @@ + #include + #include + #include ++#include + + #include "ls.h" + #include "extern.h" + ++#ifdef SMALL + int + putname(char *name) + { +@@ -54,12 +56,57 @@ putname(char *name) + putchar((!isprint(*name) && f_nonprint) ? '?' : *name); + return len; + } ++#else ++int ++putname(char *name) ++{ ++ int len; ++ wchar_t wc; ++ size_t n; ++ mbstate_t mbs; ++ int w; + ++ len = 0; ++ bzero(&mbs, sizeof(mbs)); ++ while (*name) { ++ n = mbrtowc(&wc, name, MB_CUR_MAX, &mbs); ++ if (n == 0) ++ break; ++ if (n == (size_t)-1 || n == (size_t)-2) { ++ /* Filename encoding doesn't match locale encoding. ++ * Fall back to printing single bytes. */ ++ while (*name) { ++ putchar((!isprint(*name) && f_nonprint) ++ ? '?' : *name); ++ len++; ++ name++; ++ } ++ return len; ++ } ++ name += n; ++ if (!iswprint(wc) && f_nonprint) { ++ putchar('?'); ++ len++; ++ } else { ++ putwchar(wc); ++ w = wcwidth(wc); ++ if (w > 0) ++ len += w; ++ } ++ } ++ return len; ++} ++#endif ++ + void usage(void) { (void)fprintf(stderr,