about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--Doc/Zsh/contrib.yo4
-rw-r--r--Functions/Calendar/calendar_parse12
-rw-r--r--Functions/MIME/zsh-mime-handler2
-rw-r--r--Functions/MIME/zsh-mime-setup3
5 files changed, 29 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 356bc4045..a04f0452a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-11-20  Peter Stephenson  <pws@csr.com>
+
+	* 26075: Functions/Calendar/calendar_parse: update repeated events
+	until they're in the future.
+
+	* users/13464: Functions/MIME/zsh-mime-handler,
+	Functions/MIME/zsh-mime-setup: allow suffixes specified as
+	lower case to match upper case variants.
+
 2008-11-18  Peter Stephenson  <pws@csr.com>
 
 	* 26065: Config/version.mk: update to 4.3.9-dev-1 because of
diff --git a/Doc/Zsh/contrib.yo b/Doc/Zsh/contrib.yo
index 3e2baf38d..43338192a 100644
--- a/Doc/Zsh/contrib.yo
+++ b/Doc/Zsh/contrib.yo
@@ -1887,6 +1887,10 @@ user.
 The system works by setting up suffix aliases with `tt(alias -s)'.
 Suffix aliases already installed by the user will not be overwritten.
 
+For suffixes defined in lower case, upper case variants will also
+automatically be handled (e.g. tt(PDF) is automatically handled if
+handling for the suffix tt(pdf) is defined), but not vice versa.
+
 Repeated calls to tt(zsh-mime-setup) do not override the existing
 mapping between suffixes and executable files unless the option tt(-f)
 is given.  Note, however, that this does not override existing suffix
diff --git a/Functions/Calendar/calendar_parse b/Functions/Calendar/calendar_parse
index f856a4f77..e53e97516 100644
--- a/Functions/Calendar/calendar_parse
+++ b/Functions/Calendar/calendar_parse
@@ -28,6 +28,7 @@ setopt extendedglob
 
 local REPLY REPLY2
 local -a match mbegin mend
+integer now
 
 autoload -U calendar_scandate
 
@@ -70,6 +71,17 @@ while (( changed )); do
       reply[rpttime]=$REPLY
       reply[rptstr]=${match[2]%%"$REPLY2"}
       reply[text2]="${match[1]}${REPLY2##[[:space:]]#}"
+      (( now = EPOCHSECONDS ))
+      while (( ${reply[rpttime]} < now )); do
+	# let's hope the original appointment wasn't in 44 B.C.
+	if calendar_scandate -a -R ${reply[rpttime]} ${reply[rptstr]}; then
+	  if (( REPLY <= ${reply[rpttime]} )); then
+	    # pathological case
+	    break;
+	  fi
+	  reply[rpttime]=$REPLY
+	fi
+      done
     else
       # Just remove the keyword for further parsing
       reply[text2]="${match[1]}${match[2]##[[:space:]]#}"
diff --git a/Functions/MIME/zsh-mime-handler b/Functions/MIME/zsh-mime-handler
index 9b604c422..4f7bc1eb5 100644
--- a/Functions/MIME/zsh-mime-handler
+++ b/Functions/MIME/zsh-mime-handler
@@ -44,7 +44,7 @@ local suffix context
 local -a match mbegin mend
 
 [[ $1 = (#b)*.([^.]##) ]] || return 1
-suffix=$match[1]
+suffix=${(L)match[1]}
 context=":mime:.${suffix}:"
 
 local handler flags no_sh no_bg
diff --git a/Functions/MIME/zsh-mime-setup b/Functions/MIME/zsh-mime-setup
index 0e3a29e56..59693b09a 100644
--- a/Functions/MIME/zsh-mime-setup
+++ b/Functions/MIME/zsh-mime-setup
@@ -327,6 +327,8 @@ zstyle -L | while read line; do
     suffix=$match[1]
     # Make sure there is a suffix alias set up for this.
     alias -s $suffix >&/dev/null || alias -s $suffix=zsh-mime-handler
+    # Also for upper case variant
+    alias -s ${(U)suffix} >&/dev/null || alias -s ${(U)suffix}=zsh-mime-handler
   fi
 done
 
@@ -364,6 +366,7 @@ for suffix line in ${(kv)suffix_type_map}; do
     # Install the zsh handler as an alias, but never override
     # existing suffix handling.
     alias -s $suffix >&/dev/null || alias -s $suffix=zsh-mime-handler
+    alias -s ${(U)suffix} >&/dev/null || alias -s ${(U)suffix}=zsh-mime-handler
 
     zsh_mime_handlers[$suffix]=$line2
     zsh_mime_flags[$suffix]=$type_flags_map[$type]