This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch] correctly configure wcwidth in readline


On Wed, Feb 26, 2003 at 01:43:48PM -0500, Kris Warkentin wrote:
> > Try:
> > AC_CHECK_FUNC(wcwidth, have_wcwidth=yes, have_wcwidth=no)
> > if test $have_wcwidth = yes; then
> >   AC_DEFINE(HAVE_WCWIDTH)
> >   AC_SUBST(WCWIDTH_OBJ,wcwidth.o)
> > else
> >   AC_SUBST(WCWIDTH_OBJ,)
> > fi
> >
> > You'd have to test it though.
> 
> Okay.  This works great on systems with and without wcwidth.

Good thing you tested it, since I got the logic backwards above :)
And your mailer ate the tabs but I assume you had them in the right
places.  Elena, I recommend this patch.

[Kris: changelog!]

> 
> Kris
> 
> 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
> 
> 

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]