Next: Uses of defadvice in SES, Previous: The data area, Up: For Gurus

### 4.4 Buffer-local variables in spreadsheets

You can add additional local variables to the list at the bottom of the data area, such as hidden constants you want to refer to in your formulas.

You can override the variable `ses--symbolic-formulas` to be a list of symbols (as parenthesized strings) to show as completions for the ' command. This initial completions list is used instead of the actual set of symbols-as-formulas in the spreadsheet.

For an example of this, see file `etc/ses-example.ses`.

If (for some reason) you want your formulas or printers to save data into variables, you must declare these variables as buffer-locals in order to avoid a virus warning.

You can define functions by making them values for the fake local variable `eval`. Such functions can then be used in your formulas and printers, but usually each `eval` is presented to the user during file loading as a potential virus — this can get annoying.

You can define functions in your `.emacs` file. Other people can still read the print area of your spreadsheet, but they won't be able to recalculate or reprint anything that depends on your functions. To avoid virus warnings, each function used in a formula needs

         (put 'your-function-name 'safe-function t)