Re: [Patch] correctly configure wcwidth in readline

Kris Warkentin
2003-02-26T20:52:12Z

[-- Attachment #1: Type: text/plain, Size: 408 bytes --]

> > > [Kris: changelog!]
> >
> > The changelog is unchanged from the original post.
>
> Please always include it with the patch, even if it hasn't changed.

Okay. Here is is with the patch:

* aclocal.m4: Cause wcwidth check to substitute HAVE_WCWIDTH for
building.
* Makefile.in: Add wcwidth object to lib if required.
* shlib/Makefile.in: Likewise.
* configure: Regenerate.

cheers,

Kris

[-- Attachment #2: readline_diff.txt --]
[-- Type: text/plain, Size: 4438 bytes --]

Index: Makefile.in
===================================================================
RCS file: /cvs/src/src/readline/Makefile.in,v
retrieving revision 1.4
diff -u -r1.4 Makefile.in
--- Makefile.in 8 Dec 2002 22:31:37 -0000 1.4
+++ Makefile.in 26 Feb 2003 18:41:35 -0000
@@ -86,6 +86,8 @@
LIBRARY_NAME = libreadline.a
STATIC_LIBS = libreadline.a libhistory.a

+WCWIDTH_OBJ = @WCWIDTH_OBJ@
+
# The C code source files for this library.
CSOURCES = $(srcdir)/readline.c $(srcdir)/funmap.c $(srcdir)/keymaps.c \
$(srcdir)/vi_mode.c $(srcdir)/parens.c $(srcdir)/rltty.c \
@@ -98,7 +100,7 @@
$(srcdir)/histfile.c $(srcdir)/nls.c $(srcdir)/search.c \
$(srcdir)/shell.c $(srcdir)/savestring.c $(srcdir)/tilde.c \
$(srcdir)/text.c $(srcdir)/misc.c $(srcdir)/compat.c \
- $(srcdir)/mbutil.c
+ $(srcdir)/mbutil.c $(srcdir)/support/wcwidth.c

# The header files for this library.
HSOURCES = readline.h rldefs.h chardefs.h keymaps.h history.h histlib.h \
@@ -111,7 +113,8 @@
OBJECTS = readline.o vi_mode.o funmap.o keymaps.o parens.o search.o \
rltty.o complete.o bind.o isearch.o display.o signals.o \
util.o kill.o undo.o macro.o input.o callback.o terminal.o \
- text.o nls.o misc.o compat.o xmalloc.o $(HISTOBJ) $(TILDEOBJ)
+ text.o nls.o misc.o compat.o xmalloc.o $(HISTOBJ) $(TILDEOBJ) \
+ $(WCWIDTH_OBJ)

# The texinfo files which document this library.
DOCSOURCE = doc/rlman.texinfo doc/rltech.texinfo doc/rluser.texinfo
@@ -146,6 +149,10 @@
$(RM) $@
$(AR) $(ARFLAGS) $@ $(HISTOBJ) xmalloc.o
-test -n "$(RANLIB)" && $(RANLIB) $@
+
+wcwidth.o: $(srcdir)/support/wcwidth.c
+ $(RM) $@
+ $(CC) $(CCFLAGS) -c $(srcdir)/support/wcwidth.c

# Since tilde.c is shared between readline and bash, make sure we compile
# it with the right flags when it's built as part of readline
Index: aclocal.m4
===================================================================
RCS file: /cvs/src/src/readline/aclocal.m4,v
retrieving revision 1.4
diff -u -r1.4 aclocal.m4
--- aclocal.m4 8 Dec 2002 22:31:37 -0000 1.4
+++ aclocal.m4 26 Feb 2003 18:41:35 -0000
@@ -1653,7 +1653,13 @@
AC_CHECK_HEADERS(langinfo.h)

AC_CHECK_FUNC(mbsrtowcs, AC_DEFINE(HAVE_MBSRTOWCS))
-AC_CHECK_FUNC(wcwidth, AC_DEFINE(HAVE_WCWIDTH))
+AC_CHECK_FUNC(wcwidth, have_wcwidth=yes)
+if test "$have_wcwidth" = yes; then
+ AC_DEFINE(HAVE_WCWIDTH)
+ AC_SUBST(WCWIDTH_OBJ,)
+else
+ AC_SUBST(WCWIDTH_OBJ,wcwidth.o)
+fi

AC_CACHE_CHECK([for mbstate_t], bash_cv_have_mbstate_t,
[AC_TRY_RUN([
Index: shlib/Makefile.in
===================================================================
RCS file: /cvs/src/src/readline/shlib/Makefile.in,v
retrieving revision 1.4
diff -u -r1.4 Makefile.in
--- shlib/Makefile.in 8 Dec 2002 22:31:38 -0000 1.4
+++ shlib/Makefile.in 26 Feb 2003 18:41:36 -0000
@@ -103,6 +103,8 @@
SHARED_HISTORY = libhistory.$(SHLIB_LIBVERSION)
SHARED_LIBS = $(SHARED_READLINE) $(SHARED_HISTORY)

+WCWIDTH_OBJ = @WCWIDTH_OBJ@
+
# The C code source files for this library.
CSOURCES = $(topdir)/readline.c $(topdir)/funmap.c $(topdir)/keymaps.c \
$(topdir)/vi_mode.c $(topdir)/parens.c $(topdir)/rltty.c \
@@ -115,7 +117,7 @@
$(topdir)/histfile.c $(topdir)/nls.c $(topdir)/search.c \
$(topdir)/shell.c $(topdir)/savestring.c $(topdir)/tilde.c \
$(topdir)/text.c $(topdir)/misc.c $(topdir)/compat.c \
- $(topdir)/mbutil.c
+ $(topdir)/mbutil.c $(WCWIDTH_SRC)

# The header files for this library.
HSOURCES = readline.h rldefs.h chardefs.h keymaps.h history.h histlib.h \
@@ -129,7 +131,7 @@
rltty.so complete.so bind.so isearch.so display.so signals.so \
util.so kill.so undo.so macro.so input.so callback.so terminal.so \
text.so nls.so misc.so xmalloc.so $(SHARED_HISTOBJ) $(SHARED_TILDEOBJ) \
- compat.so
+ compat.so $(WCWIDTH_OBJ)

##########################################################################

@@ -152,6 +154,10 @@
$(SHARED_HISTORY): $(SHARED_HISTOBJ) xmalloc.so
$(RM) $@
$(SHOBJ_LD) ${SHOBJ_LDFLAGS} ${SHLIB_XLDFLAGS} -o $@ $(SHARED_HISTOBJ) xmalloc.so $(SHLIB_LIBS)
+
+wcwidth.o: $(srcdir)/support/wcwidth.c
+ $(RM) $@
+ $(SHOBJ_CC) -c $(CCFLAGS) $(SHOBJ_FLAGS) $(srcdir)/support/wcwidth.c

# Since tilde.c is shared between readline and bash, make sure we compile
# it with the right flags when it's built as part of readline