* What's wrong with this elisp code? @ 2006-08-03 17:35 ken 2006-08-03 19:16 ` Peter Dyballa 0 siblings, 1 reply; 10+ messages in thread From: ken @ 2006-08-03 17:35 UTC (permalink / raw) This line below is in a script: emacs --batch emacs-diary-day >& /home/xxx/tmp/emacs-diary-log In /usr/share/emacs/21.3/site-lisp/ (confirmed in load-path) is a file entitled emacs-diary-day.el; this file contains: ;show today's entries only (diary 1) (find-file "/home/xxx/tmp/emacs-diary-day") ;erase everything that might be in the buffer (erase-buffer) ;see below for the arg to insert ;(apply 'insert diary-entries-list) ;tried both the above and below. Same error either way (insert diary-entries-list) (save-buffer) I found this documentation earlier today: the variable `diary-entries-list' is a list, in order by date, of all relevant diary entries in the form of ((MONTH DAY YEAR) STRING), where string is the diary entry for the given date. This can be used, for example, a different buffer for display (perhaps combined with holidays), or produce hard copy output. But I'm getting the error: Loading rng-auto.el (source)... Loading /usr/lib/emacs/21.3/i586-suse-linux/fns-21.3.1.el (source)... Preparing diary... Preparing diary...done Symbol's value as variable is void: diary-entries-list If I (setq diary-entries-list "Some string of chars") there's no error, but of course this isn't what I'm after. Any happy tips? ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: What's wrong with this elisp code? 2006-08-03 17:35 What's wrong with this elisp code? ken @ 2006-08-03 19:16 ` Peter Dyballa [not found] ` <44D24F39.5080607@speakeasy.net> 0 siblings, 1 reply; 10+ messages in thread From: Peter Dyballa @ 2006-08-03 19:16 UTC (permalink / raw) Cc: GNU Emacs List Am 03.08.2006 um 19:35 schrieb ken: > the variable `diary-entries-list' is a list, in order by date, of all > relevant diary entries in the form of ((MONTH DAY YEAR) STRING), where > string is the diary entry for the given date. I don't have this variable in my Emacsen. Once you type 'C-h v' on this variable name string a *Help* buffer should open that will show where this variable comes from. Now you can load that Elisp file before you make use of the variable ... -- Greetings Pete The light at the end of the tunnel has been turned off due to budget cuts. ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <44D24F39.5080607@speakeasy.net>]
[parent not found: <52A05EBB-9A5D-48C9-8A2A-553908FD097E@Web.DE>]
[parent not found: <44D25BD4.7040006@speakeasy.net>]
[parent not found: <C1580EEC-6A6C-4FE3-8295-070AC6D482AD@Web.DE>]
[parent not found: <44D327DF.6090500@speakeasy.net>]
* Re: What's wrong with this elisp code? [not found] ` <44D327DF.6090500@speakeasy.net> @ 2006-08-04 11:27 ` Peter Dyballa 2006-08-04 19:39 ` ken [not found] ` <mailman.4866.1154720372.9609.help-gnu-emacs@gnu.org> [not found] ` <mailman.4842.1154691137.9609.help-gnu-emacs@gnu.org> 1 sibling, 2 replies; 10+ messages in thread From: Peter Dyballa @ 2006-08-04 11:27 UTC (permalink / raw) Am 04.08.2006 um 12:56 schrieb ken: > This is the only instance of "(defvar diary-entries-list)" in the > entire > subdirectory. Could this variable be declared some other way, other > than an explicit "defvar"? No, there is without any clause a defvar instance in diary-lib.el. > > Another person who responded said he's thinking that this variable is > only declared within functions, so not available for my use. I can't tell. I do not programme so much in Elisp. Could be the author or the maintainer of calendar can help more. Have you read the *info* node on Calendar? > > In an earlier email you mentioned emacs find. If that would help in > this situation, could you point me to documentation of it. I'd be > more > than willing to give that a try. The "grep-find" command (sorry that I did not give the right name before!) in GNU Emacs is a young feature. It it in CVS versions of GNU Emacs, could be in 21.4 also, but I do not have it. It does a "find . -type f" with a grep for some argument(s) in the found files, output is put into a buffer with hypertext features, i.e. clicking on the file names opens them in another buffer. I ran this command yesterday and found diary-entries-list in diary-lib.el. And this seems to be the origin. -- Greetings Pete Ce qui été compris n'existe plus. (Paul Eluard) ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: What's wrong with this elisp code? 2006-08-04 11:27 ` Peter Dyballa @ 2006-08-04 19:39 ` ken 2006-08-04 20:04 ` Peter Dyballa [not found] ` <mailman.4866.1154720372.9609.help-gnu-emacs@gnu.org> 1 sibling, 1 reply; 10+ messages in thread From: ken @ 2006-08-04 19:39 UTC (permalink / raw) Peter Dyballa wrote: > > Am 04.08.2006 um 12:56 schrieb ken: > >> This is the only instance of "(defvar diary-entries-list)" in the entire >> subdirectory. Could this variable be declared some other way, other >> than an explicit "defvar"? > > No, there is without any clause a defvar instance in diary-lib.el. I'm glad computers can do text searches. Otherwise I'd be thinking myself crazy. After reading through diary-lib.el several times, I just searched for "defvar diary-entries-list" and this computer agrees with my eyes and brain-- it's not there. I'm using emacs version 2.3.1. Is there some other way that this variable could be defined other than with defvar? >> Another person who responded said he's thinking that this variable is >> only declared within functions, so not available for my use. > > I can't tell. I do not programme so much in Elisp. Could be the author > or the maintainer of calendar can help more. Have you read the *info* > node on Calendar? Yes, though-- at least in the emacs section of info-- it's not at all helpful here, focussing on *using* the diary/calendar functions already available. >> In an earlier email you mentioned emacs find. If that would help in >> this situation, could you point me to documentation of it. I'd be more >> than willing to give that a try. > > The "grep-find" command (sorry that I did not give the right name > before!) in GNU Emacs is a young feature. It it in CVS versions of GNU > Emacs, could be in 21.4 also, but I do not have it. It does a "find . > -type f" with a grep for some argument(s) in the found files, output is > put into a buffer with hypertext features, i.e. clicking on the file > names opens them in another buffer. I ran this command yesterday and > found diary-entries-list in diary-lib.el. And this seems to be the origin. Thanks for the clarification. I'm already quite conversant with grep and find and other tools available on Linux; plus, I already do so much in emacs, typically having three or more frames and dozens of files open simultaneously, that I'd rather perform those functions from the command line rather than from within emacs. So if there's no additional benefit to using grep-find in emacs, it would be more efficient and comfortable for me to work as I currently do. Thanks much for your kindness, ken > > -- > Greetings > > Pete > > Ce qui été compris n'existe plus. (Paul Eluard) ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: What's wrong with this elisp code? 2006-08-04 19:39 ` ken @ 2006-08-04 20:04 ` Peter Dyballa 0 siblings, 0 replies; 10+ messages in thread From: Peter Dyballa @ 2006-08-04 20:04 UTC (permalink / raw) Cc: GNU Emacs List Am 04.08.2006 um 21:39 schrieb ken: > I'm glad computers can do text searches. Otherwise I'd be thinking > myself crazy. After reading through diary-lib.el several times, I > just > searched for "defvar diary-entries-list" and this computer agrees with > my eyes and brain-- it's not there. I'm using emacs version 2.3.1. Upgrade to GNU Emacs 22.0.50 from CVS (you probably mean that you have an elderly version 21.3.1, 21.4 is the recent one) and learn a bit about CVS, configuring, getting missing software, and making and installing free software! > > Is there some other way that this variable could be defined other than > with defvar? Defvar it in site-start.el! It'll be empty, but it'll be at least there! To be prepared for the future you might like to check first whether the variable is already defined. If not, create it! There is, hopefully, a node about Emacs Lisp in *info* (if not, you can get it from GNU/FSF). There might be some pointers to answer your question. -- Greetings Pete "I wouldn't recommend sex, drugs or insanity for everyone, but they've always worked for me." -- Hunter S. Thompson ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <mailman.4866.1154720372.9609.help-gnu-emacs@gnu.org>]
* Re: What's wrong with this elisp code? [not found] ` <mailman.4866.1154720372.9609.help-gnu-emacs@gnu.org> @ 2006-08-04 20:51 ` Glenn Morris 0 siblings, 0 replies; 10+ messages in thread From: Glenn Morris @ 2006-08-04 20:51 UTC (permalink / raw) ken wrote: > Is there some other way that this variable could be defined other than > with defvar? Yes, the way that Jeff Miller already said: inside a let binding so that it only exists for the duration of the calling function: bar -> Symbol's value as variable is void: bar (defun foo () (let ((bar "BAR")) (message "the value of bar is %s" bar))) (foo) -> "the value of bar is BAR" bar -> Symbol's value as variable is void: bar Making your own definition of the variable `bar' outside of the function `foo' will be no help at all, since this global binding is hidden inside the let statement. The Emacs calendar does a few things in this way, which can make it difficult to follow. To achieve what you want, use the already posted solution, or adapt the definition of the function `diary-mail-entries' (see documentation of that function for example cron usage), eg to: (require 'diary-lib) (defun diary-to-file (file &optional ndays) "Write the diary entries for the next NDAYS (default 1) to FILE." (interactive (list (read-file-name "Write diary to file: ") (prefix-numeric-value current-prefix-arg))) (let ((diary-display-hook 'fancy-diary-display)) (list-diary-entries (calendar-current-date) (or ndays 1)) (with-temp-buffer (insert (if (get-buffer fancy-diary-buffer) (with-current-buffer fancy-diary-buffer (buffer-string)) "No diary entries found")) (write-region (point-min) (point-max) file nil nil nil t)))) ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <mailman.4842.1154691137.9609.help-gnu-emacs@gnu.org>]
* Re: What's wrong with this elisp code? [not found] ` <mailman.4842.1154691137.9609.help-gnu-emacs@gnu.org> @ 2006-08-04 22:23 ` Glenn Morris 2006-08-05 0:06 ` ken 0 siblings, 1 reply; 10+ messages in thread From: Glenn Morris @ 2006-08-04 22:23 UTC (permalink / raw) Peter Dyballa wrote: > No, there is without any clause a defvar instance in diary-lib.el. Just for the sake of clarity, this form (only present in diary-lib in CVS): (defvar diary-entries-list) only has the effect of suppressing a byte-compiler warning. It doesn't actually define a value for diary-entries-list. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: What's wrong with this elisp code? 2006-08-04 22:23 ` Glenn Morris @ 2006-08-05 0:06 ` ken 0 siblings, 0 replies; 10+ messages in thread From: ken @ 2006-08-05 0:06 UTC (permalink / raw) Glenn Morris wrote: > Peter Dyballa wrote: > >> No, there is without any clause a defvar instance in diary-lib.el. > > Just for the sake of clarity, this form (only present in diary-lib in > CVS): > > (defvar diary-entries-list) > > only has the effect of suppressing a byte-compiler warning. It doesn't > actually define a value for diary-entries-list. Thanks, Glenn and everyone else who lent a hand, even the mean guy. I'm bagging this project. Elisp is just too much for me I guess. I thought this would be a couple hours' project. Instead I've spent the better part of two days on it. On the other hand, I recently learned and wrote a handy app in Tk/Tcl in a couple hours. And I didn't have to upgrade anything. (It seems like eight out of ten times I try to write something in elisp, I need to upgrade.) I have to admire those of you who can write stuff in elisp. I've learned and wrote tons of code in a lot of different languages. I guess I should spend my time where I'm productive. Thanks again, ken ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <mailman.4811.1154626598.9609.help-gnu-emacs@gnu.org>]
* Re: What's wrong with this elisp code? [not found] <mailman.4811.1154626598.9609.help-gnu-emacs@gnu.org> @ 2006-08-04 3:31 ` Jeff Miller [not found] ` <44D32639.80305@speakeasy.net> 0 siblings, 1 reply; 10+ messages in thread From: Jeff Miller @ 2006-08-04 3:31 UTC (permalink / raw) ken <gebser@speakeasy.net> writes: > But I'm getting the error: > > Loading rng-auto.el (source)... > Loading /usr/lib/emacs/21.3/i586-suse-linux/fns-21.3.1.el (source)... > Preparing diary... > Preparing diary...done > Symbol's value as variable is void: diary-entries-list I think this variable is only used inside of some let statements and not available for general use. If you use this in your emacs-diary-day.el, does it get you closer to what you want? (let* ((diary-display-hook 'fancy-diary-display) (diary-list-include-blanks t) (text (progn (list-diary-entries (calendar-current-date) 1) (set-buffer fancy-diary-buffer) (buffer-substring (point-min) (point-max))))) (find-file "emacs-diary-day") (erase-buffer) (insert text)) (save-buffer) -- Jeff Miller jmiller@cablespeed.com ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <44D32639.80305@speakeasy.net>]
* Re: What's wrong with this elisp code? [not found] ` <44D32639.80305@speakeasy.net> @ 2006-08-04 19:53 ` Jeff Miller 0 siblings, 0 replies; 10+ messages in thread From: Jeff Miller @ 2006-08-04 19:53 UTC (permalink / raw) ken writes: > > I think this variable is only used inside of some let statements and > > not available for general use. > > My elisp skills are limited, but I'm tending to agree with you. I > haven't found a specific "(defvar diary-entries-list)" in any of the > files related to the calendaring or diary functions. I know I managed to use it in a lisp function once before. I think I had to use diary-hook to run the function though. I'll have to look at it closer later on. I'm heading out tonight and will be away all week. > > If you use this in your emacs-diary-day.el, does it get you closer to > > what you want? > > > > (let* ((diary-display-hook 'fancy-diary-display) > > (diary-list-include-blanks t) > > (text (progn (list-diary-entries (calendar-current-date) 1) > > (set-buffer fancy-diary-buffer) > > (buffer-substring (point-min) (point-max))))) > > (find-file "emacs-diary-day") > > (erase-buffer) > > (insert text)) > > (save-buffer) > > > > The error I'm getting with this is a little different: > > Loading rng-auto.el (source)... > Loading /usr/lib/emacs/21.3/i586-suse-linux/fns-21.3.1.el (source)... > Symbol's function definition is void: list-diary-entries > Ah, I think it's missing diary-lib, try invoking it like this: emacs -batch -l diary-lib -l /home/jmiller/local/lisp/emacs-diary-day.el Or add (require 'diary-lib) at the beginning of emacs-diary-day.el. > Thanks for the effort though, > ken Jeff -- Jeff Miller jmiller@cablespeed.com ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2006-08-05 0:06 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-08-03 17:35 What's wrong with this elisp code? ken 2006-08-03 19:16 ` Peter Dyballa [not found] ` <44D24F39.5080607@speakeasy.net> [not found] ` <52A05EBB-9A5D-48C9-8A2A-553908FD097E@Web.DE> [not found] ` <44D25BD4.7040006@speakeasy.net> [not found] ` <C1580EEC-6A6C-4FE3-8295-070AC6D482AD@Web.DE> [not found] ` <44D327DF.6090500@speakeasy.net> 2006-08-04 11:27 ` Peter Dyballa 2006-08-04 19:39 ` ken 2006-08-04 20:04 ` Peter Dyballa [not found] ` <mailman.4866.1154720372.9609.help-gnu-emacs@gnu.org> 2006-08-04 20:51 ` Glenn Morris [not found] ` <mailman.4842.1154691137.9609.help-gnu-emacs@gnu.org> 2006-08-04 22:23 ` Glenn Morris 2006-08-05 0:06 ` ken [not found] <mailman.4811.1154626598.9609.help-gnu-emacs@gnu.org> 2006-08-04 3:31 ` Jeff Miller [not found] ` <44D32639.80305@speakeasy.net> 2006-08-04 19:53 ` Jeff Miller
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 read-only IMAP folder(s) and NNTP newsgroup(s).