diff options
| author | Mark Oteiza | 2019-05-10 20:55:04 -0400 |
|---|---|---|
| committer | Mark Oteiza | 2019-05-10 20:55:04 -0400 |
| commit | cc67d6ef36a07f26364d63e524fcba6fe9cb2112 (patch) | |
| tree | 0592d088901879e55bd601f0077117ee012c2ab0 | |
| parent | 616ce44ac53f08bf447cbc032f4bb10cd65c0b70 (diff) | |
| download | emacs-cc67d6ef36a07f26364d63e524fcba6fe9cb2112.tar.gz emacs-cc67d6ef36a07f26364d63e524fcba6fe9cb2112.zip | |
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.
| -rw-r--r-- | lisp/obsolete/ws-mode.el | 180 |
1 files changed, 30 insertions, 150 deletions
diff --git a/lisp/obsolete/ws-mode.el b/lisp/obsolete/ws-mode.el index 3d2e968b1da..16156106710 100644 --- a/lisp/obsolete/ws-mode.el +++ b/lisp/obsolete/ws-mode.el | |||
| @@ -289,66 +289,6 @@ with C-q w." | |||
| 289 | (setq ws-last-errormessage string) | 289 | (setq ws-last-errormessage string) |
| 290 | (error string)) | 290 | (error string)) |
| 291 | 291 | ||
| 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 | |||
| 352 | (defun ws-begin-block () | 292 | (defun ws-begin-block () |
| 353 | "In WordStar mode: Set block begin marker to current cursor position." | 293 | "In WordStar mode: Set block begin marker to current cursor position." |
| 354 | (interactive) | 294 | (interactive) |
| @@ -447,96 +387,6 @@ with C-q w." | |||
| 447 | (ws-block-end-marker "Block begin marker not set") | 387 | (ws-block-end-marker "Block begin marker not set") |
| 448 | (t "Block markers not set"))))) | 388 | (t "Block markers not set"))))) |
| 449 | 389 | ||
| 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 | |||
| 540 | (defun ws-goto-block-begin () | 390 | (defun ws-goto-block-begin () |
| 541 | "In WordStar mode: Go to block begin marker." | 391 | "In WordStar mode: Go to block begin marker." |
| 542 | (interactive) | 392 | (interactive) |
| @@ -654,6 +504,36 @@ sWith: " ) | |||
| 654 | (ws-block-end-marker "Block begin marker not set") | 504 | (ws-block-end-marker "Block begin marker not set") |
| 655 | (t "Block markers not set"))))) | 505 | (t "Block markers not set"))))) |
| 656 | 506 | ||
| 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 | |||
| 657 | (provide 'ws-mode) | 537 | (provide 'ws-mode) |
| 658 | 538 | ||
| 659 | ;;; ws-mode.el ends here | 539 | ;;; ws-mode.el ends here |