Skip to content

Commit cc67d6e

Browse files
committed
Generate some repetitive WordStar code with macros
* lisp/obsolete/ws-mode.el (ws-set-marker-0, ws-set-marker-1): (ws-set-marker-2, ws-set-marker-3, ws-set-marker-4, ws-set-marker-5): (ws-set-marker-6, ws-set-marker-7, ws-set-marker-8, ws-set-marker-9): (ws-find-marker-0, ws-find-marker-1, ws-find-marker-2, ws-find-marker-3): (ws-find-marker-4, ws-find-marker-5, ws-find-marker-6, ws-find-marker-7): (ws-find-marker-8, ws-find-marker-9): Remove. (ws-set-marker, ws-find-marker): New macros. Use them.
1 parent 616ce44 commit cc67d6e

File tree

1 file changed

+30
-150
lines changed

1 file changed

+30
-150
lines changed

lisp/obsolete/ws-mode.el

Lines changed: 30 additions & 150 deletions
Original file line numberDiff line numberDiff line change
@@ -289,66 +289,6 @@ with C-q w."
289289
(setq ws-last-errormessage string)
290290
(error string))
291291

292-
(defun ws-set-marker-0 ()
293-
"In WordStar mode: Set marker 0 to current cursor position."
294-
(interactive)
295-
(setq ws-marker-0 (point-marker))
296-
(message "Marker 0 set"))
297-
298-
(defun ws-set-marker-1 ()
299-
"In WordStar mode: Set marker 1 to current cursor position."
300-
(interactive)
301-
(setq ws-marker-1 (point-marker))
302-
(message "Marker 1 set"))
303-
304-
(defun ws-set-marker-2 ()
305-
"In WordStar mode: Set marker 2 to current cursor position."
306-
(interactive)
307-
(setq ws-marker-2 (point-marker))
308-
(message "Marker 2 set"))
309-
310-
(defun ws-set-marker-3 ()
311-
"In WordStar mode: Set marker 3 to current cursor position."
312-
(interactive)
313-
(setq ws-marker-3 (point-marker))
314-
(message "Marker 3 set"))
315-
316-
(defun ws-set-marker-4 ()
317-
"In WordStar mode: Set marker 4 to current cursor position."
318-
(interactive)
319-
(setq ws-marker-4 (point-marker))
320-
(message "Marker 4 set"))
321-
322-
(defun ws-set-marker-5 ()
323-
"In WordStar mode: Set marker 5 to current cursor position."
324-
(interactive)
325-
(setq ws-marker-5 (point-marker))
326-
(message "Marker 5 set"))
327-
328-
(defun ws-set-marker-6 ()
329-
"In WordStar mode: Set marker 6 to current cursor position."
330-
(interactive)
331-
(setq ws-marker-6 (point-marker))
332-
(message "Marker 6 set"))
333-
334-
(defun ws-set-marker-7 ()
335-
"In WordStar mode: Set marker 7 to current cursor position."
336-
(interactive)
337-
(setq ws-marker-7 (point-marker))
338-
(message "Marker 7 set"))
339-
340-
(defun ws-set-marker-8 ()
341-
"In WordStar mode: Set marker 8 to current cursor position."
342-
(interactive)
343-
(setq ws-marker-8 (point-marker))
344-
(message "Marker 8 set"))
345-
346-
(defun ws-set-marker-9 ()
347-
"In WordStar mode: Set marker 9 to current cursor position."
348-
(interactive)
349-
(setq ws-marker-9 (point-marker))
350-
(message "Marker 9 set"))
351-
352292
(defun ws-begin-block ()
353293
"In WordStar mode: Set block begin marker to current cursor position."
354294
(interactive)
@@ -447,96 +387,6 @@ with C-q w."
447387
(ws-block-end-marker "Block begin marker not set")
448388
(t "Block markers not set")))))
449389

450-
(defun ws-find-marker-0 ()
451-
"In WordStar mode: Go to marker 0."
452-
(interactive)
453-
(if ws-marker-0
454-
(progn
455-
(setq ws-last-cursorposition (point-marker))
456-
(goto-char ws-marker-0))
457-
(ws-error "Marker 0 not set")))
458-
459-
(defun ws-find-marker-1 ()
460-
"In WordStar mode: Go to marker 1."
461-
(interactive)
462-
(if ws-marker-1
463-
(progn
464-
(setq ws-last-cursorposition (point-marker))
465-
(goto-char ws-marker-1))
466-
(ws-error "Marker 1 not set")))
467-
468-
(defun ws-find-marker-2 ()
469-
"In WordStar mode: Go to marker 2."
470-
(interactive)
471-
(if ws-marker-2
472-
(progn
473-
(setq ws-last-cursorposition (point-marker))
474-
(goto-char ws-marker-2))
475-
(ws-error "Marker 2 not set")))
476-
477-
(defun ws-find-marker-3 ()
478-
"In WordStar mode: Go to marker 3."
479-
(interactive)
480-
(if ws-marker-3
481-
(progn
482-
(setq ws-last-cursorposition (point-marker))
483-
(goto-char ws-marker-3))
484-
(ws-error "Marker 3 not set")))
485-
486-
(defun ws-find-marker-4 ()
487-
"In WordStar mode: Go to marker 4."
488-
(interactive)
489-
(if ws-marker-4
490-
(progn
491-
(setq ws-last-cursorposition (point-marker))
492-
(goto-char ws-marker-4))
493-
(ws-error "Marker 4 not set")))
494-
495-
(defun ws-find-marker-5 ()
496-
"In WordStar mode: Go to marker 5."
497-
(interactive)
498-
(if ws-marker-5
499-
(progn
500-
(setq ws-last-cursorposition (point-marker))
501-
(goto-char ws-marker-5))
502-
(ws-error "Marker 5 not set")))
503-
504-
(defun ws-find-marker-6 ()
505-
"In WordStar mode: Go to marker 6."
506-
(interactive)
507-
(if ws-marker-6
508-
(progn
509-
(setq ws-last-cursorposition (point-marker))
510-
(goto-char ws-marker-6))
511-
(ws-error "Marker 6 not set")))
512-
513-
(defun ws-find-marker-7 ()
514-
"In WordStar mode: Go to marker 7."
515-
(interactive)
516-
(if ws-marker-7
517-
(progn
518-
(setq ws-last-cursorposition (point-marker))
519-
(goto-char ws-marker-7))
520-
(ws-error "Marker 7 not set")))
521-
522-
(defun ws-find-marker-8 ()
523-
"In WordStar mode: Go to marker 8."
524-
(interactive)
525-
(if ws-marker-8
526-
(progn
527-
(setq ws-last-cursorposition (point-marker))
528-
(goto-char ws-marker-8))
529-
(ws-error "Marker 8 not set")))
530-
531-
(defun ws-find-marker-9 ()
532-
"In WordStar mode: Go to marker 9."
533-
(interactive)
534-
(if ws-marker-9
535-
(progn
536-
(setq ws-last-cursorposition (point-marker))
537-
(goto-char ws-marker-9))
538-
(ws-error "Marker 9 not set")))
539-
540390
(defun ws-goto-block-begin ()
541391
"In WordStar mode: Go to block begin marker."
542392
(interactive)
@@ -654,6 +504,36 @@ sWith: " )
654504
(ws-block-end-marker "Block begin marker not set")
655505
(t "Block markers not set")))))
656506

507+
(defmacro ws-set-marker (&rest indices)
508+
(let (n forms)
509+
(while indices
510+
(setq n (pop indices))
511+
(push `(defun ,(intern (format "ws-set-marker-%d" n)) ()
512+
,(format "In WordStar mode: Set marker %d to current cursor position" n)
513+
(interactive)
514+
(setq ,(intern (format "ws-marker-%d" n)) (point-marker))
515+
(message ,(format "Marker %d set" n)))
516+
forms))
517+
`(progn ,@(nreverse forms))))
518+
519+
(ws-set-marker 0 1 2 3 4 5 6 7 8 9)
520+
521+
(defmacro ws-find-marker (&rest indices)
522+
(let (n forms)
523+
(while indices
524+
(setq n (pop indices))
525+
(push `(defun ,(intern (format "ws-find-marker-%d" n)) ()
526+
,(format "In WordStar mode: Go to marker %d." n)
527+
(interactive)
528+
(if ,(intern (format "ws-marker-%d" n))
529+
(progn (setq ws-last-cursorposition (point-marker))
530+
(goto-char ,(intern (format "ws-marker-%d" n))))
531+
(ws-error ,(format "Marker %d not set" n))))
532+
forms))
533+
`(progn ,@(nreverse forms))))
534+
535+
(ws-find-marker 0 1 2 3 4 5 6 7 8 9)
536+
657537
(provide 'ws-mode)
658538

659539
;;; ws-mode.el ends here

0 commit comments

Comments
 (0)