Subject: 25.1.50; Wishlist: There should be a way to postpone messages

From: Lars Magne Ingebrigtsen <[email-masked]>
Date: Sun, 06 Mar 2016 14:49:38 +0100

When doing stuff that takes an unknown amount of time, it would be handy
to have a form like

(with-delayed-message "Contacting server..."
  (contact-the-server))

If the body form completes within reasonable time (defined by
`delayed-message-timeout', say 1 second), no message is displayed.  If
more time than that passes, the message is displayed until the form
exits.  This has to happen no matter what Emacs is doing -- blocking on
DNS resolution, or running Emacs Lisp code.

When the body exits, the message (if it has been displayed) is cleared
(and any previous message shown in the echo area is restored).

In GNU Emacs 25.1.50.23 (x86_64-unknown-linux-gnu, GTK+ Version 3.4.2)
 of 2016-03-06 built on stories
Repository revision: 20cc4182598c6c724f4556faf6bc322c9e58ad1d
Windowing system distributor 'The X.Org Foundation', version 11.0.11204000
System Description:	Debian GNU/Linux 7.9 (wheezy)

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GSETTINGS NOTIFY GNUTLS
LIBXML2 FREETYPE LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11

Important settings:
  value of $LANG: en_US
  locale-coding-system: iso-latin-1-unix

Major mode: Group

Minor modes in effect:
  diff-auto-refine-mode: t
  gnus-topic-mode: t
  gnus-undo-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t

Recent messages:
Reading incoming mail from pop...
nnml: Reading incoming mail (no new mail)...done
Reading active file via nnml...done
Reading active file via nnmh...done
nnimap read 11k from imap.gmail.com (initial sync of 1 group; please wait)
Reading active file from archive via nnfolder...done
Reading active file from archive via nnfolder...done
Reading active file via nndraft...done
Reading active file via nnmbox...done
Checking new news...done

Load-path shadows:
/home/larsi/src/clock.el/clock hides /home/larsi/lisp/clock
/home/larsi/src/cddb.el/expect hides /home/larsi/lisp/expect
/home/larsi/src/pvr.el/pvr hides /home/larsi/lisp/pvr
~/pgnus/contrib/vcard hides /home/larsi/lisp/vcard
/home/larsi/src/cddb.el/captitle hides /home/larsi/lisp/captitle
~/lisp/zenirc-2.112/src/zenirc-example hides /home/larsi/lisp/zenirc-example
/home/larsi/lisp/dom hides /home/larsi/src/emacs/trunk/lisp/dom
~/pgnus/contrib/compface hides /home/larsi/src/emacs/trunk/lisp/image/compface

Features:
(mailalias smtpmail vc-git diff-mode map pp shadow emacsbug sendmail
binhex canlock ecomplete flow-fill eieio-opt speedbar sb-image ezimage
dframe find-func thingatpt view sgml-mode misearch multi-isearch tabify
imenu man vc vc-dispatcher copyright vc-cvs eww shr-color color
gnus-html url-queue help-fns url-cache gnus-picon sort gnus-cite smiley
ansi-color mm-archive gnus-async gnus-dup qp gnus-ml gmane spam-gmane
dns mm-url disp-table gnus-fun gnus-mdrtn gnus-topic pop3 nndoc nnmbox
nndraft utf-7 nnmh nnml nnfolder network-stream nsm starttls nnir
spam-report spam spam-stat gnus-uu yenc gnus-agent gnus-srvr gnus-score
score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime
smime dig nntp gnus-cache gnus-sum gnus-group gnus-undo gnus-start
gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo parse-time
gnus-spec gnus-int gnus-range message format-spec rfc822 mml mml-sec epa
epg mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util
rmail rmail-loaddefs mail-utils movie mkv shr svg imdb dom pvr debug
debbugs-gnu easy-mmode derived debbugs soap-client mm-decode mm-bodies
mm-encode url-http tls gnutls url-auth mail-parse rfc2231 rfc2047
rfc2045 ietf-drums url-gw puny url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-domsuf url-util mailcap warnings
rng-xsd rng-dt rng-util xsd-regexp xml ido seq flyspell ispell benchmark
w3m browse-url doc-view subr-x dired dired-loaddefs image-mode timezone
w3m-hist w3m-fb w3m-ems wid-edit w3m-ccl ccl w3m-favicon w3m-image
w3m-proc w3m-util add-log mail-extr mm-util mail-prsvr jka-compr cl
finder-inf package epg-config url-handlers url-parse auth-source cl-seq
eieio byte-opt bytecomp byte-compile cl-extra help-mode easymenu cconv
eieio-core cl-macs gv eieio-loaddefs cl-loaddefs pcase cl-lib
password-cache url-vars time-date mule-util tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment elisp-mode lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core term/tty-colors frame cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese charscript case-table epa-hook
jka-cmpr-hook help simple abbrev obarray minibuffer cl-preloaded nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote inotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 4034591 338824)
 (symbols 48 171278 110)
 (miscs 40 724 2360)
 (strings 32 320030 33184)
 (string-bytes 1 14062326)
 (vectors 16 44043)
 (vector-slots 8 1761878 240974)
 (floats 8 7077 3617)
 (intervals 56 932090 46613)
 (buffers 976 69)
 (heap 1024 214119 71154))

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no