Function: doctor-fix-2
doctor-fix-2 is a byte-compiled function defined in doctor.el.gz.
Signature
(doctor-fix-2 SENT)
Source Code
;; Defined in /usr/src/emacs/lisp/play/doctor.el.gz
(defun doctor-fix-2 (sent)
(let ((foo sent))
(while foo
(if (and (eq (car foo) 'me)
(doctor-verbp (cadr foo)))
(rplaca foo 'i)
(cond ((eq (car foo) 'you)
(cond ((memq (cadr foo) '(am be been is))
(rplaca (cdr foo) 'are))
((memq (cadr foo) '(has))
(rplaca (cdr foo) 'have))
((memq (cadr foo) '(was))
(rplaca (cdr foo) 'were))))
((equal (car foo) 'i)
(cond ((memq (cadr foo) '(are is be been))
(rplaca (cdr foo) 'am))
((memq (cadr foo) '(were))
(rplaca (cdr foo) 'was))
((memq (cadr foo) '(has))
(rplaca (cdr foo) 'have))))
((and (doctor-verbp (car foo))
(eq (cadr foo) 'i)
(not (doctor-verbp (car (cddr foo)))))
(rplaca (cdr foo) 'me))
((and (eq (car foo) 'a)
(doctor-vowelp (string-to-char
(doctor-make-string (cadr foo)))))
(rplaca foo 'an))
((and (eq (car foo) 'an)
(not (doctor-vowelp (string-to-char
(doctor-make-string (cadr foo))))))
(rplaca foo 'a)))
(setq foo (cdr foo))))
sent))