[comp.sys.hp] HUGE C-n problem

steve@cfht.hawaii.edu (Steven Smith) (05/31/91)

In the HUGE emacs (18.57.1 on HP-UX quonset 7.05 B 9000/375 quonset),
if I set:
(setq HP-want-restrained-next-line t)
in my ~/.emacs, I get the following error message when trying to C-n
or use the downarrow:
Symbol's function definition is void: line-move

Setting it to nil will allow C-n to work, but I loose the intended
functionality.  

Other than this, HUGE works well, and has already converted one local
vi'er to emacs.  It compiled ok (but what were all those optimization
warnings?), and the included lisp packages are great.
It would be nice if this would magically appear whenever I installed
HPUX (or OSF, I could wait:-)

thanks,
steve


--
Steven S. Smith 		Canada-France-Hawaii Telescope Corp. 
steve@cfht.hawaii.edu

darrylo@hpnmdla.sr.hp.com (Darryl Okahata) (05/31/91)

[ NOTE: I am not supposed to be helping anyone with questions about the
  "unofficial HP GNU Emacs", although, if you don't tell my bosses, I
  won't.  ;-)  ]

In comp.sys.hp, steve@cfht.hawaii.edu (Steven Smith) writes:

> In the HUGE emacs (18.57.1 on HP-UX quonset 7.05 B 9000/375 quonset),
> if I set:
> (setq HP-want-restrained-next-line t)
> in my ~/.emacs, I get the following error message when trying to C-n
> or use the downarrow:
> Symbol's function definition is void: line-move

     It's a bug.  The best way to fix it is to replace the definition of
`restrained-next-line' in /usr/local/emacs/lisp/local/HP-init.el with:

-------------------------------------------------------------------------------
(defun restrained-next-line (arg)
  "Move cursor vertically down ARG lines.
If there is no character in the target line exactly under the current column,
the cursor is positioned after the character in that line which spans this
column, or at the end of the line if it is not long enough.  Trying to move the
cursor past the end of the buffer will NOT added new lines to the buffer.
The command \\[set-goal-column] can be used to create
a semipermanent goal column to which this command always moves.
Then it does not try to move vertically."
  (interactive "p")
  (if (= arg 1)
      (if (not (eobp))
	  (let ((opoint (point)))
	    (progn
	      (forward-line 1)
	      ;; This insert makes the line "visible" when a keyboard
	      ;; macro is running by putting a newline on the end of the last
	      ;; line in the buffer iff one isn't there.
	      (if (not (eq (preceding-char) ?\n))
		  (insert ?\n))
	      (setq eob (eobp))
	      (goto-char opoint)
	      (next-line-internal arg))))
    (next-line-internal arg))
  nil)
-------------------------------------------------------------------------------

(Basically, `line-move' is replaced by `next-line-internal'.)

***** NOTE: if you do this, you *MUST* recompile Emacs, as the
      HP-init.el file is loaded at compile time only.

     If you do not want to recompile Emacs, you can also fix this
problem by placing a copy of the above function in your .emacs file.

     -- Darryl Okahata
	Internet: darrylo%sr@relay.hp.com

DISCLAIMER: this message is the author's personal opinion and does not
constitute the support, opinion or policy of Hewlett-Packard or of the
little green men that have been following him all day.