4.7 Virus protection

Whenever a formula or printer is read from a file or is pasted into the spreadsheet, it receives a “needs safety check” marking. Later, when the formula or printer is evaluated for the first time, it is checked for safety using the unsafep predicate; if found to be “possibly unsafe”, the questionable formula or printer is displayed and you must press Y to approve it or N to use a substitute. The substitute always signals an error.

Formulas or printers that you type in are checked immediately for safety. If found to be possibly unsafe and you press N to disapprove, the action is canceled and the old formula or printer will remain.

Besides viruses (which try to copy themselves to other files), unsafep can also detect all other kinds of Trojan horses, such as spreadsheets that delete files, send email, flood Web sites, alter your Emacs settings, etc.

Generally, spreadsheet formulas and printers are simple things that don’t need to do any fancy computing, so all potentially-dangerous parts of the Emacs Lisp environment can be excluded without cramping your style as a formula-writer. See the documentation in unsafep.el for more info on how Lisp forms are classified as safe or unsafe.