emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: SES local variables to define printers


From: Vincent Belaïche
Subject: RE: SES local variables to define printers
Date: Sun, 26 May 2013 09:16:48 +0200


> From: address@hidden
> To: address@hidden
> CC: address@hidden
> Subject: Re: SES local variables to define printers
> Date: Sat, 25 May 2013 21:17:10 -0400
> 
> > Here is an example "example.ses", if you open it with the current SES it
> > will generate an error "Invalid printer" while it used to work --- don't
> > remember with which version, but that sort of thing was working one year
> > or so ago.
> 
> It doesn't work with any of Debian's Emacs-24.1, Emacs-23.4, or
> Emacs-22.3. It must have been something different.
> 

Well, since that was 1 year ago or so that I was using this sheet I may
have done some hack at that time... sorry for the bold assertion that
this *WAS wORKING*, I must admit that I am not so sure now.

Now, having thought a bit more about it, I think that in most sheets I
have the local variables my-tbc-time and my-checked-time defined as
local variables, and the printer function defined as e.g. (lambda (x)
(funcall my-tbc-time x)) rather than just my-tbc-time. 

I don't know why in the faulty one-year-old-sheet it was done with just
my-tbc-time for the printer. Probably I had the symbol-function slot
also defined somewhere else --- like in my *scratch* --- to the same
function and that was hiding that defining locally the function in the
value slot was not working.

> > If you take my patch (attached as ses.el.gz) and configure
> > ses-enable-local-variables you will have desired printing.
> 
> How 'bout:
> 
> You add to your .emacs
> 
> (defun my-checked-time (x)
> (let ((calc-float-format '(fix 1)) (calc-hms-format "%sh %sm %ss"))
> (math-format-value x)))
> (defun my-tbc-time (x)
> (let ((calc-float-format '(fix 1))(calc-hms-format "?? %sh %sm %ss"))
> (math-format-value x)))
> 
> and then you can use those printer functions in your ses files.
> 
> It's simple and safe, and it works without any changes.
> 
> 

Well, it also means that your .emacs will grow endlessly as you create
new sheets, and also that you cannot archive the sheet+printer in the
same batch easily. Definitely I would not buy this one.

Maybe another way would be to use ede mode, and to  have the printer
functions defined in some prj.el file. I must admit that I am not an
experienced user of ede, I use it only inderectly through JDEE and I am
not well aware of how ede ensures security.

Anyway there could be some safe macro ses-printer-def placed in the EDE
prj.el file to define needed printer functions, and ses-printer-def
would make some check that the printer uses only functions without
border effect and without any loop structure.

Anyway, the simpler is to have printer functions configured as:

 (lambda (x) (funcall my-tbc-time x))

> Stefan

   Vincent.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]