File termcap-2.0.8.dif of Package termcap
--- .pkgextract
+++ .pkgextract Mon Jul 28 14:06:30 2003
@@ -0,0 +1,2 @@
+patch -p1 -s --suffix=.setuid < ../termcap-2.0.8-setuid.patch
+patch -p1 -s --suffix=.tc < ../termcap-2.0.8-fix-tc.patch
--- Makefile
+++ Makefile Mon Jul 28 14:03:55 2003
@@ -9,14 +9,16 @@
CC=gcc
CFLAGS=-O -I. -g
-CFLAGS=-O -I.
+CFLAGS=$(RPM_OPT_FLAGS) -pipe -I.
AR=ar
ARFLAGS=ucvr
+LN=ln
+
MAKEINFO=makeinfo
-OWNER=bin.bin
+OWNER=root.root
STATIC_LIB=lib$(LIBNAME).a
SHARED_LIB=lib$(LIBNAME).so.$(VERSION)
@@ -25,7 +27,8 @@
TARGETS=$(STATIC_LIB) $(SHARED_LIB)
# Where is include and dir located?
-prefix=/
+prefix=/usr
+lib=lib
.c.o:
$(CC) $(CFLAGS) -c $<
@@ -34,63 +37,33 @@
SRCS = termcap.c tparam.c version.c
OBJS= $(SRCS:.c=.o)
-all lib: pic .depend $(TARGETS) info
+all lib: pic .depend $(TARGETS)
$(STATIC_LIB): $(OBJS)
$(AR) $(ARFLAGS) $@ $(OBJS)
$(SHARED_LIB): $(OBJS)
cd pic; \
- $(CC) -shared -o ../$@ -Wl,-soname,$(SONAME_SHARED_LIB) $(OBJS)
+ $(CC) -shared -o ../$@ -Wl,-soname,$(SONAME_SHARED_LIB) $(OBJS) -lc
+ $(LN) -sf $(SHARED_LIB) $(SONAME_SHARED_LIB)
+ $(LN) -sf $(SHARED_LIB) lib$(LIBNAME).so
pic:
-if [ ! -d pic ]; then mkdir pic; fi
-install: lib install-dirs install-data
- -if [ -f $(prefix)/lib/$(SHARED_LIB) ]; then \
- mkdir -p $(prefix)/lib/backup; \
- mv $(prefix)/lib/$(SHARED_LIB) \
- $(prefix)/lib/backup/$(SHARED_LIB).$$$$; \
- fi
- cp $(SHARED_LIB) $(prefix)/lib
- chown $(OWNER) $(prefix)/lib/$(SHARED_LIB)
- if [ -x /sbin/ldconfig -o -x /etc/ldconfig ]; then \
- ldconfig; \
- fi
- -if [ $(prefix) = "/" ]; then \
- cp -f $(STATIC_LIB) /usr/lib; \
- rm -f /lib/libtermcap.so; \
- rm -f /usr/lib/libtermcap.so; \
- ln -s /lib/$(SHARED_LIB) /usr/lib/libtermcap.so; \
- cp -f termcap.h /usr/include; \
- cp termcap.info* /usr/info; \
- chown $(OWNER) \
- /usr/info/termcap.info* \
- /usr/lib/$(STATIC_LIB) \
- /usr/lib/libtermcap.so \
- /usr/include/termcap.h; \
- else \
- cp -f $(STATIC_LIB) $(prefix)/lib; \
- rm -f $(prefix)/lib/libtermcap.so; \
- ln -s $(prefix)/lib/$(SHARED_LIB) \
- $(prefix)/lib/libtermcap.so; \
- cp -f termcap.h $(prefix)/include; \
- chown $(OWNER) \
- $(prefix)/lib/$(STATIC_LIB) \
- $(prefix)/lib/libtermcap.so \
- $(prefix)/include/termcap.h; \
- fi
-
-install-dirs:
- -if [ $(prefix) = "/" ]; then \
- mkdir -p /usr/lib /usr/info /usr/include /etc /lib; \
- fi
-
-install-data:
- -if [ $(prefix) = "/" ]; then \
- cp termcap.src /etc/termcap; \
- chown $(OWNER) /etc/termcap; \
- fi
+install: lib
+ mkdir -p $(prefix)/$(lib)/termcap $(prefix)/include/termcap $(prefix)/$(lib)
+ install -m 755 $(SHARED_LIB) $(prefix)/$(lib)
+ ln -sf $(SHARED_LIB) $(prefix)/$(lib)/$(SONAME_SHARED_LIB)
+ ln -sf ../$(SHARED_LIB) $(prefix)/$(lib)/termcap/lib$(LIBNAME).so
+ install -m 644 $(STATIC_LIB) $(prefix)/$(lib)/termcap/
+ install -m 644 termcap.h $(prefix)/include/termcap/
+
+#install-data:
+# -if [ $(prefix) = "/" ]; then \
+# cp termcap.src /etc/termcap; \
+# chown $(OWNER) /etc/termcap; \
+# fi
info: termcap.info
--- Makefile.Linux
+++ Makefile.Linux Tue Jul 15 18:26:18 2003
@@ -0,0 +1,18 @@
+#
+#
+# Makefile.Linux to integrate package into source tree of S.u.S.E.-Linux
+#
+# Copyright (C) 1996 S.u.S.E. GmbH Fuerth, Germany.
+#
+# Please send bug-fixes or comments to feedback@suse.de.
+#
+# Author: Florian La Roche <florian@suse.de>
+#
+#
+
+compile:
+ make
+
+install:
+ make install
+
--- termcap.c
+++ termcap.c Mon Jul 28 13:59:31 2003
@@ -43,7 +43,10 @@
speed_t ospeed;
int tputs_baud_rate;
char PC;
-int tgetent_bufsize = 1024;
+#if !defined(TGETENT_BUFSIZE)
+#define TGETENT_BUFSIZE 1536
+#endif
+int tgetent_bufsize = TGETENT_BUFSIZE;
/* We store a terminal description in a linked list. */
struct tc_ent {
@@ -108,7 +111,7 @@
c = *s++ & 0x1f;
/* See if we want to translate. */
- if ((c & 0x7f) > 31)
+ if ((c & 0x7f) > 31 && c != ':' && c != '\\')
*r++ = c;
else {
len = s - start;
@@ -439,7 +442,7 @@
for(i = l; i; i = i->next)
count += strlen(i->cap) + 1;
count++;
-
+
/* Malloc this amount. */
sp = xmalloc(count);
maxlen = count + 32; /* Just a lot. */
@@ -454,6 +457,10 @@
for(bp = s; *bp; bp++) {
*sp++ = *bp;
count++;
+ if (count >= maxlen-1) {
+ write(2, "tgetent: warning: termcap entry too long\n", 41);
+ break;
+ }
}
*sp++ = ':';
count++;
@@ -652,7 +659,7 @@
/*ARGSUSED*/
int main(int argc, char **argv)
{
- char buf[1024];
+ char buf[TGETENT_BUFSIZE];
char *s;
char *ts;
--- tparam.c
+++ tparam.c Mon Jul 28 14:02:44 2003
@@ -24,9 +24,6 @@
#undef STDC_HEADERS
#define STDC_HEADERS
#define HAVE_UNISTD_H
-#if defined(HAVE_STRING_H) || defined(STDC_HEADERS)
-#define bcopy(s, d, n) memcpy ((d), (s), (n))
-#endif
#endif
#ifdef STDC_HEADERS
@@ -299,6 +296,10 @@
case 'D': /* %D means weird Delta Data transformation. */
argp[0] -= 2 * (tem % 16);
break;
+
+ case 'p': /* %p means push nth arg - ignore. */
+ *p++;
+ break;
}
}
else