Bug 17496

Summary: /usr/ports/editors/emacs termcap problem
Product: Ports & Packages Reporter: baram <baram>
Component: Individual Port(s)Assignee: freebsd-ports (Nobody) <ports>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   

Description baram 2000-03-20 01:50:00 UTC
	Whether in an xterm or a console, emacs fails to update, scroll, or
align the text on the screen.

Fix: 

Unknown.
How-To-Repeat: 
	% cvsup -h cvsup.freebsd.org /usr/share/examples/cvsup/ports-supfile
	% cd /usr/ports/editors/emacs && make install
	% emacs

	% cd /usr/ports/editors/emacs && make -DNO_X11 install
	% emacs
Comment 1 tomo 2000-03-27 11:03:58 UTC
To fix termcap problem:

1. emacs CANNOT use libtermcap.a (libncurses.a) of FreeBSD-4.0.

2. Use following "quick dirty" patch 

--- work/emacs-20.6/src/s/freebsd.h~    Mon Mar 27 13:41:49 2000
+++ work/emacs-20.6/src/s/freebsd.h     Mon Mar 27 13:43:37 2000
@@ -43,7 +43,9 @@

 #define LIBS_DEBUG
 #define LIBS_SYSTEM -lutil
+#if __FreeBSD_version < 400000
 #define LIBS_TERMCAP -ltermcap
+#endif

 /* Use XPG4 Library for FreeBSD */
 #if __FreeBSD_version >= 220000

Tomoyuki, Kano
Comment 2 kaz 2000-05-09 20:17:55 UTC
It was to change termcap library in FreeBSD 4.0R.

The old version's tgetstr("cm"...) return follows string at xterm.

\E%i%d;%dH

But, new version's it return follows that is likely terminfo format.

\E%p1%d;%p2%dH

The Emacs has 'tgoto' routine in itself that is in tparam.c. This 
routine doesn't support new format. So, We don't use system termcap 
library (Mr.Tomoyuki's patch) or must be modify tgoto routine.

e.g)

--- tparam.c.orig       Wed Apr 10 07:14:20 1996
+++ tparam.c    Wed May 10 04:14:24 2000
@@ -174,6 +174,10 @@
          tem = *argp;
          switch (c)
            {
+           case 'p':           /* 2000.05.10 Kazuho Okui <kaz@naan.net
> */
+             p++;              /* Under FreeBSD 4.0R ignore %pn 
format. */
+             break;
+
            case 'd':           /* %d means output in decimal.  */
              if (tem < 10)
                goto onedigit;


Thanks,
----------------
Kazuho Okui
<kaz@naan.net>
http://www.naan.net
Comment 3 okazaki 2000-06-20 16:37:43 UTC
Dear committers, use the below patch to fix the port.

Tetsurou


diff -urN /usr/ports/editors/emacs/patches/patch-ac emacs/patches/patch-ac
--- /usr/ports/editors/emacs/patches/patch-ac	Sun Apr 11 15:57:07 1999
+++ emacs/patches/patch-ac	Tue Jun  6 16:58:51 2000
@@ -1,5 +1,5 @@
---- src/s/freebsd.h.orig	Sun Jun  9 15:14:32 1996
-+++ src/s/freebsd.h	Fri Apr  9 18:17:41 1999
+--- src/s/freebsd.h.orig	Mon Jun 10 05:14:32 1996
++++ src/s/freebsd.h	Tue Jun  6 16:44:10 2000
 @@ -1,5 +1,15 @@
  /* s/ file for freebsd system.  */
  
@@ -16,15 +16,18 @@
  /* '__FreeBSD__' is defined by the preprocessor on FreeBSD-1.1 and up.
     Earlier versions do not have shared libraries, so inhibit them.
     You can inhibit them on newer systems if you wish
-@@ -34,7 +44,6 @@
+@@ -33,8 +43,9 @@
+ 
  #define LIBS_DEBUG
  #define LIBS_SYSTEM -lutil
++#if __FreeBSD_version < 400000
  #define LIBS_TERMCAP -ltermcap
 -#define LIB_GCC -lgcc
++#endif
  
  #define SYSV_SYSTEM_DIR
  
-@@ -42,12 +51,33 @@
+@@ -42,12 +53,33 @@
  #undef BSD_PGRPS
  #define GETPGRP_NO_ARG
  
@@ -59,7 +62,7 @@
  
  #ifndef N_TRELOFF
  #define N_PAGSIZ(x) __LDPGSZ
-@@ -63,6 +93,8 @@
+@@ -63,6 +95,8 @@
  #endif /* __FreeBSD__ */
  #endif /* NO_SHARED_LIBS */
  
@@ -68,7 +71,7 @@
  #define HAVE_WAIT_HEADER
  #define HAVE_GETLOADAVG
  /*#define HAVE_GETPAGESIZE  /* configure now puts this in config.h */
-@@ -80,6 +112,8 @@
+@@ -80,6 +114,8 @@
  #define BSD 199103
  #elif __FreeBSD__ == 2
  #define BSD 199306
Comment 4 shige freebsd_committer freebsd_triage 2000-07-13 19:42:07 UTC
State Changed
From-To: open->closed

Committed. Thanks!