zsh-users
 help / color / mirror / code / Atom feed
From: Sven Wischnowsky <wischnow@informatik.hu-berlin.de>
To: zsh-users@sunsite.auc.dk
Subject: PATCH: Re: NUMERIC_GLOB_SORT wish
Date: Mon, 1 Nov 1999 09:00:05 +0100 (MET)	[thread overview]
Message-ID: <199911010800.JAA29110@beta.informatik.hu-berlin.de> (raw)
In-Reply-To: Nemeth Ervin's message of 27 Oct 1999 12:09:53 +0200


[ Sorry for sending a patch to -users, but it's quite small... ]

Nemeth Ervin wrote:

> Hi,
> 
> I don't know if zsh 3.1.* has this feature, but in 3.0.* it is not documented:
> 
> It would be splendid to turn on NUMERIC_GLOB_SORT in any globbing with a
> globbing qualifier.
> 
> What do you think?

Hm, it's a bit irritating that we can't do that yet, given that we can 
set the other globbing specific options via qualifiers. It's quite
easy to implement, though.

To -workers:

The patch below implements that for 3.1.6-bart-7 (it will not work for 
any 3.0.x, I think). For now I took the letter `n'. This is a bit ugly
because all other qualifiers that locally set options use upper case
letters. The other free upper case letters are: BCFHJKPQVYZ. Any suggestions?

Bye
 Sven

diff -u oldsrc/glob.c Src/glob.c
--- oldsrc/glob.c	Fri Oct 29 21:15:13 1999
+++ Src/glob.c	Fri Oct 29 20:56:26 1999
@@ -139,6 +139,7 @@
     int gd_qualct, gd_qualorct;
     int gd_range, gd_amc, gd_units;
     int gd_gf_nullglob, gd_gf_markdirs, gd_gf_noglobdots, gd_gf_listtypes;
+    int gd_gf_numsort;
     int gd_gf_follow, gd_gf_sorts, gd_gf_nsorts, gd_gf_sortlist[11];
 
     char *gd_glob_pre, *gd_glob_suf;
@@ -165,6 +166,7 @@
 #define gf_markdirs   (curglobdata.gd_gf_markdirs)
 #define gf_noglobdots (curglobdata.gd_gf_noglobdots)
 #define gf_listtypes  (curglobdata.gd_gf_listtypes)
+#define gf_numsort    (curglobdata.gd_gf_numsort)
 #define gf_follow     (curglobdata.gd_gf_follow)
 #define gf_sorts      (curglobdata.gd_gf_sorts)
 #define gf_nsorts     (curglobdata.gd_gf_nsorts)
@@ -899,6 +901,7 @@
     gf_markdirs = isset(MARKDIRS);
     gf_listtypes = gf_follow = 0;
     gf_noglobdots = unset(GLOBDOTS);
+    gf_numsort = isset(NUMERICGLOBSORT);
     gf_sorts = gf_nsorts = 0;
 
     /* Check for qualifiers */
@@ -1176,6 +1179,10 @@
 			/* Glob dots: match leading dots implicitly */
 			gf_noglobdots = sense & 1;
 			break;
+		    case 'n':
+			/* Numeric glob sort */
+			gf_numsort = !(sense & 1);
+			break;
 		    case 'a':
 			/* Access time in given range */
 			g_amc = 0;
@@ -1413,7 +1420,7 @@
 #ifndef HAVE_STRCOLL
     cmp = (int)STOUC(*c) - (int)STOUC(*d);
 #endif
-    if (isset(NUMERICGLOBSORT) && (idigit(*c) || idigit(*d))) {
+    if (gf_numsort && (idigit(*c) || idigit(*d))) {
 	for (; c > *b && idigit(c[-1]); c--, d--);
 	if (idigit(*c) && idigit(*d)) {
 	    while (*c == '0')
diff -u olddoc/Zsh/expn.yo Doc/Zsh/expn.yo
--- olddoc/Zsh/expn.yo	Fri Oct 29 21:15:35 1999
+++ Doc/Zsh/expn.yo	Fri Oct 29 21:02:07 1999
@@ -1598,6 +1598,10 @@
 sets the tt(GLOB_DOTS) option for the current pattern
 pindex(GLOB_DOTS, setting in pattern)
 )
+item(tt(n))(
+sets the tt(NUMERIC_GLOB_SORT) option for the current pattern
+pindex(NUMERIC_GLOB_SORT, setting in pattern)
+)
 item(tt(o)var(c))(
 specifies how the names of the files should be sorted. If var(c) is
 tt(n) they are sorted by name (the default), if it is tt(L) they

--
Sven Wischnowsky                         wischnow@informatik.hu-berlin.de


             reply	other threads:[~1999-11-01  8:00 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-11-01  8:00 Sven Wischnowsky [this message]
1999-11-01  9:03 ` Nemeth Ervin
1999-11-02 17:53 ` Bart Schaefer
1999-11-03  8:13 Sven Wischnowsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=199911010800.JAA29110@beta.informatik.hu-berlin.de \
    --to=wischnow@informatik.hu-berlin.de \
    --cc=zsh-users@sunsite.auc.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).