;; Node
-(defvar elpher-seen-nodes (make-hash-table :test 'equal)
- "Table mapping addresses to existing (seen) node objects.")
-
(defun elpher-make-node (parent address getter &optional content pos)
"Create a node in the gopher page hierarchy.
page.
The optional arguments CONTENT and POS can be used to fill the cached
-content and cursor position fields of the node.
-
-If the hash table `elpher-seen-nodes' contains a key equal to ADDRESS,
-the node contained as its value will be returned instead."
- (let ((existing-node (gethash address elpher-seen-nodes)))
- (if existing-node
- existing-node
- (let ((new-node (list parent address getter content pos)))
- (puthash address new-node elpher-seen-nodes)
- new-node))))
+content and cursor position fields of the node."
+ (list parent address getter content pos))
(defun elpher-node-parent (node)
"Retrieve the parent node of NODE."