about summary refs log tree commit diff
path: root/Functions/Calendar/calendar_show
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2006-12-01 10:23:06 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2006-12-01 10:23:06 +0000
commit6b1b34d1da6b0db599c026e17df011ad6c6b3a30 (patch)
tree3559a344ebd62a8b0af17c70b9b0fdaeae5e2299 /Functions/Calendar/calendar_show
parentab8b8026dcc17f7c3d8dcfba7dba046b1ac7c42b (diff)
downloadzsh-6b1b34d1da6b0db599c026e17df011ad6c6b3a30.tar.gz
zsh-6b1b34d1da6b0db599c026e17df011ad6c6b3a30.tar.xz
zsh-6b1b34d1da6b0db599c026e17df011ad6c6b3a30.zip
c.f. 23023: new calendar function system.
Diffstat (limited to 'Functions/Calendar/calendar_show')
-rw-r--r--Functions/Calendar/calendar_show24
1 files changed, 24 insertions, 0 deletions
diff --git a/Functions/Calendar/calendar_show b/Functions/Calendar/calendar_show
new file mode 100644
index 000000000..f731d07a5
--- /dev/null
+++ b/Functions/Calendar/calendar_show
@@ -0,0 +1,24 @@
+integer start=$1 stop=$2
+shift 2
+
+[[ -o zle ]] && zle -I
+print -r "$*"
+
+local -a cmd
+zmodload -i zsh/parameter || return
+
+# Use xmessage to display the message if the start and stop time
+# are the same, indicating we have been scheduled to display it.
+# Don't do this if there's already an xmessage for the same user.
+# HERE: this should be configurable and we should be able to do
+# better if xmessage isn't available, e.g. wish.
+if [[ -n $DISPLAY &&  $start -eq $stop ]]; then
+  if [[ -n ${commands[xmessage]} ]]; then
+    cmd=(xmessage -center)
+  fi
+  if [[ -n $cmd[0] ]] &&
+    ! ps -u$UID | grep $cmd[0] >/dev/null 2>&1; then
+    # turn off job control for this
+    ($cmd "$*" &)
+  fi
+fi