X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=aclocal.m4;h=c184d52461a784b5446d47ff6759c37ba51e369c;hp=23d500ccc1fa7c2a15345fc859a2e6642663d2fb;hb=092f1e4b79bca1d1cd3e24baa7abc3ad4cea8420;hpb=96e4e128aeac7fd4706facb2c23d9a89c8f52c2f diff --git a/aclocal.m4 b/aclocal.m4 index 23d500cc..c184d524 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,5 +1,5 @@ dnl*************************************************************************** -dnl Copyright (c) 1998-2014,2015 Free Software Foundation, Inc. * +dnl Copyright (c) 1998-2015,2016 Free Software Foundation, Inc. * dnl * dnl Permission is hereby granted, free of charge, to any person obtaining a * dnl copy of this software and associated documentation files (the * @@ -28,7 +28,7 @@ dnl*************************************************************************** dnl dnl Author: Thomas E. Dickey 1995-on dnl -dnl $Id: aclocal.m4,v 1.785 2015/11/08 01:03:06 tom Exp $ +dnl $Id: aclocal.m4,v 1.788 2016/02/20 23:46:28 tom Exp $ dnl Macros used in NCURSES auto-configuration script. dnl dnl These macros are maintained separately from NCURSES. The copyright on @@ -1013,6 +1013,149 @@ then fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_CHECK_WCWIDTH_GRAPHICS version: 1 updated: 2015/12/19 17:47:56 +dnl ------------------------- +dnl Most "modern" terminal emulators are based to some degree on VT100, and +dnl should support line-drawing. Even with Unicode. There is a problem. +dnl +dnl While most of the VT100 graphics characters were incorporated into Unicode, +dnl all of those were combined into a page of useful graphics characters. +dnl +dnl So far, so good. +dnl +dnl However, while they are useful, there are other considerations. CJK +dnl is (because of poor device resolution) often rendered as double-width +dnl characters. So... for these generally-useful characters, what should +dnl be the width (to make them consistent with adjacent characters)? +dnl +dnl The obvious choice would have been to make this locale-dependent, and use +dnl wcwidth() to tell applications what the actual width is. That was too +dnl obvious. Instead, we have a slew of "ambiguous-width" characters. +dnl See for example +dnl http://www.unicode.org/reports/tr11/tr11-29.html +dnl http://www.cl.cam.ac.uk/~mgk25/ucs/scw-proposal.html +dnl +dnl The EastAsianWidth-6.2.0.txt file from the Unicode organization lists +dnl more than 22,000 characters, with 1281 of those as ambiguous-width. For +dnl instance, it lists half (44/96) of the Latin-1 characters as +dnl ambiguous-width. Also, all of the box-characters at 0x2500 are ambiguous. +dnl +dnl What this means for the implementor is that on some systems wcwidth() can +dnl give bad advice. On Solaris, some of the ambiguous widths are returned as +dnl 1 (the Latin-1 characters), while others are returned as 2 (line-drawing +dnl characters). These do not necessarily match the behavior of the terminal +dnl emulator. xterm, for instance, does an optional startup check to find if +dnl this problem (or similar) exists with the system's locale tables, rejecting +dnl them if they are too unreliable. +AC_DEFUN([CF_CHECK_WCWIDTH_GRAPHICS],[ +AC_CACHE_CHECK(if wcwidth agrees graphics are single-width, cf_cv_wcwidth_graphics,[ +cat >conftest.in < +#include +#include + +#define MY_LEN 80 + +int +main(void) +{ + FILE *fp; + int value; + char buffer[MY_LEN + 1]; + char notes[MY_LEN + 1]; + int totals = 0; + int passed = 0; + + if (setlocale(LC_ALL, "en_US.UTF8") || + setlocale(LC_ALL, "en_US.UTF-8") || + setlocale(LC_ALL, "en_US.utf8") || + setlocale(LC_ALL, "en_US.utf-8")) { + if ((fp = fopen("conftest.in", "r")) != 0) { + while (fgets(buffer, MY_LEN, fp) != 0) { + if (*buffer == '-') { + fprintf(stderr, "\t%s", buffer); + } else if (sscanf(buffer, "%x %s", &value, notes) == 2) { + ++totals; + if (wcwidth(value) == 1) + ++passed; + fprintf(stderr, "%d\t%s", wcwidth(value), buffer); + } else { + fprintf(stderr, "?\t%s", buffer); + } + } + } + } + fprintf(stderr, "%d/%d passed wcwidth/graphics check\n", passed, totals); + return (totals == passed) ? 0 : 1; +} +], +[cf_cv_wcwidth_graphics=yes], +[cf_cv_wcwidth_graphics=no], +[cf_cv_wcwidth_graphics=unknown]) +]) +])dnl +dnl --------------------------------------------------------------------------- dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35 dnl ----------------- dnl Check if the given compiler is really clang. clang's C driver defines @@ -3125,7 +3268,7 @@ AC_SUBST(LDFLAGS_STATIC) AC_SUBST(LDFLAGS_SHARED) ]) dnl --------------------------------------------------------------------------- -dnl CF_LD_RPATH_OPT version: 6 updated: 2015/04/12 15:39:00 +dnl CF_LD_RPATH_OPT version: 7 updated: 2016/02/20 18:01:19 dnl --------------- dnl For the given system and compiler, find the compiler flags to pass to the dnl loader to use the "rpath" feature. @@ -3143,13 +3286,13 @@ case $cf_cv_system_name in LD_RPATH_OPT="-rpath " fi ;; -(linux*|gnu*|k*bsd*-gnu) +(linux*|gnu*|k*bsd*-gnu|freebsd*) LD_RPATH_OPT="-Wl,-rpath," ;; (openbsd[[2-9]].*|mirbsd*) LD_RPATH_OPT="-Wl,-rpath," ;; -(dragonfly*|freebsd*) +(dragonfly*) LD_RPATH_OPT="-rpath " ;; (netbsd*) @@ -4832,6 +4975,26 @@ if test "${with_abi_version+set}" != set; then fi ])dnl dnl --------------------------------------------------------------------------- +dnl CF_NCURSES_WITH_ABI_VERSION version: 2 updated: 2015/12/19 17:51:52 +dnl --------------------------- +dnl Allow ncurses's ABI to be overridden. Generally this happens when a +dnl packager has incremented the ABI past that used in the original package, +dnl and wishes to keep doing this. +dnl +dnl $1 is the package name, if any, to derive a corresponding {package}_ABI +dnl symbol. +AC_DEFUN([CF_NCURSES_WITH_ABI_VERSION],[ +CF_WITH_ABI_VERSION($1) +if test "x$cf_cv_abi_version" != "x$with_abi_version" +then + case $cf_cv_rel_version in + (5.*) + cf_cv_rel_version=$with_abi_version.0 + ;; + esac +fi +])dnl +dnl --------------------------------------------------------------------------- dnl CF_NO_LEAKS_OPTION version: 6 updated: 2015/04/12 15:39:00 dnl ------------------ dnl see CF_WITH_NO_LEAKS @@ -6881,28 +7044,6 @@ $1_ABI=$cf_cv_abi_version ]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_NCURSES_WITH_ABI_VERSION version: 1 updated: 2015/06/06 13:49:58 -dnl --------------------------- -dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49 -dnl ------------------- -dnl Allow ncurses's ABI to be overridden. Generally this happens when a -dnl packager has incremented the ABI past that used in the original package, -dnl and wishes to keep doing this. -dnl -dnl $1 is the package name, if any, to derive a corresponding {package}_ABI -dnl symbol. -AC_DEFUN([CF_NCURSES_WITH_ABI_VERSION],[ -CF_WITH_ABI_VERSION($1) -if test "x$cf_cv_abi_version" != "x$with_abi_version" -then - case $cf_cv_rel_version in - (5.*) - cf_cv_rel_version=$with_abi_version.0 - ;; - esac -fi -])dnl -dnl --------------------------------------------------------------------------- dnl CF_WITH_ADA_COMPILER version: 2 updated: 2010/06/26 17:35:58 dnl -------------------- dnl Command-line option to specify the Ada95 compiler.