Mercurial > hg > xemacs-beta
comparison lisp/cl.el @ 2071:0f60caa73962
[xemacs-hg @ 2004-05-11 11:33:08 by stephent]
gensym docstring <87r7tryzla.fsf@tleepslib.sk.tsukuba.ac.jp>
set-eol-detection fix <87vfj3yzs8.fsf@tleepslib.sk.tsukuba.ac.jp>
etags.el tests <87zn8fz03v.fsf@tleepslib.sk.tsukuba.ac.jp>
author | stephent |
---|---|
date | Tue, 11 May 2004 11:33:22 +0000 |
parents | 9c872f33ecbe |
children | f557693c61de |
comparison
equal
deleted
inserted
replaced
2070:3399b2ba4302 | 2071:0f60caa73962 |
---|---|
317 | 317 |
318 (defvar *gensym-counter* (* (logand (cl-random-time) 1023) 100)) | 318 (defvar *gensym-counter* (* (logand (cl-random-time) 1023) 100)) |
319 | 319 |
320 (defun gensym (&optional arg) | 320 (defun gensym (&optional arg) |
321 "Generate a new uninterned symbol. | 321 "Generate a new uninterned symbol. |
322 The name is made by appending a number to PREFIX, default \"G\"." | 322 The name is made by appending a number to a prefix. If ARG is a string, it |
323 is the prefix, otherwise the prefix defaults to \"G\". If ARG is an integer, | |
324 the internal counter is reset to that number before creating the name. | |
325 There is no way to specify both using this function." | |
323 (let ((prefix (if (stringp arg) arg "G")) | 326 (let ((prefix (if (stringp arg) arg "G")) |
324 (num (if (integerp arg) arg | 327 (num (if (integerp arg) arg |
325 (prog1 *gensym-counter* | 328 (prog1 *gensym-counter* |
326 (setq *gensym-counter* (1+ *gensym-counter*)))))) | 329 (setq *gensym-counter* (1+ *gensym-counter*)))))) |
327 (make-symbol (format "%s%d" prefix num)))) | 330 (make-symbol (format "%s%d" prefix num)))) |
328 | 331 |
329 (defun gentemp (&optional arg) | 332 (defun gentemp (&optional arg) |
330 "Generate a new interned symbol with a unique name. | 333 "Generate a new interned symbol with a unique name. |
331 The name is made by appending a number to PREFIX, default \"G\"." | 334 The name is made by appending a number to ARG, default \"G\". |
335 If ARG is not a string, it is ignored." | |
332 (let ((prefix (if (stringp arg) arg "G")) | 336 (let ((prefix (if (stringp arg) arg "G")) |
333 name) | 337 name) |
334 (while (intern-soft (setq name (format "%s%d" prefix *gensym-counter*))) | 338 (while (intern-soft (setq name (format "%s%d" prefix *gensym-counter*))) |
335 (setq *gensym-counter* (1+ *gensym-counter*))) | 339 (setq *gensym-counter* (1+ *gensym-counter*))) |
336 (intern name))) | 340 (intern name))) |