update to xprop 1.2.8

This commit is contained in:
matthieu
2024-12-23 09:07:50 +00:00
parent 4531e6d59e
commit 564822f0ba
8 changed files with 2751 additions and 2190 deletions

View File

@@ -1,3 +1,29 @@
commit a6906a8a067bbfaf2f4a47af1521a85340461714
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Wed Nov 13 16:17:48 2024 -0800
xprop 1.2.8
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit dc2c565fac0fe747b33899eea0425bac101ddf6d
Author: Eden Bynever <edenbynever@proton.me>
Date: Sun May 19 07:19:40 2024 -0400
Draw truecolor icons using dual-color half blocks
The vast majority of monospaced fonts are roughly half as wide as they
are tall; to account for this when displaying icons, `xprop` draws each
pixel twice in the horizontal, which nicely evens out the proportions.
This patch utilizes the Lower Half Block character (▄) to obtain the
same result in a quarter of the space. By setting both a background and
a foreground color, we can draw two pixels per character cell, thereby
halving the apparent height of an icon rather than doubling its width.
Signed-off-by: Eden Bynever <edenbynever@proton.me>
Part-of: <https://gitlab.freedesktop.org/xorg/app/xprop/-/merge_requests/10>
commit 400dbeda3b1e43f7815f596679bd785e7dbb7a4d
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Feb 3 14:55:48 2024 -0800

96
app/xprop/aclocal.m4 vendored
View File

@@ -19,7 +19,7 @@ You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
# pkg.m4 - Macros to locate and use pkg-config. -*- Autoconf -*-
# serial 12 (pkg-config-0.29.2)
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
@@ -107,7 +107,7 @@ dnl Check to see whether a particular set of modules exists. Similar to
dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
dnl
dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
dnl only at the first occurence in configure.ac, so if the first place
dnl only at the first occurrence in configure.ac, so if the first place
dnl it's called might be skipped (such as if it is within an "if", you
dnl have to call PKG_CHECK_EXISTS manually
AC_DEFUN([PKG_CHECK_EXISTS],
@@ -176,14 +176,14 @@ if test $pkg_failed = yes; then
AC_MSG_RESULT([no])
_PKG_SHORT_ERRORS_SUPPORTED
if test $_pkg_short_errors_supported = yes; then
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
else
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
# Put the nasty error message in config.log where it belongs
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
m4_default([$4], [AC_MSG_ERROR(
m4_default([$4], [AC_MSG_ERROR(
[Package requirements ($2) were not met:
$$1_PKG_ERRORS
@@ -195,7 +195,7 @@ _PKG_TEXT])[]dnl
])
elif test $pkg_failed = untried; then
AC_MSG_RESULT([no])
m4_default([$4], [AC_MSG_FAILURE(
m4_default([$4], [AC_MSG_FAILURE(
[The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -205,10 +205,10 @@ _PKG_TEXT
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
])
else
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
AC_MSG_RESULT([yes])
$3
$3
fi[]dnl
])dnl PKG_CHECK_MODULES
@@ -295,6 +295,74 @@ AS_VAR_COPY([$1], [pkg_cv_][$1])
AS_VAR_IF([$1], [""], [$5], [$4])dnl
])dnl PKG_CHECK_VAR
dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES,
dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND],
dnl [DESCRIPTION], [DEFAULT])
dnl ------------------------------------------
dnl
dnl Prepare a "--with-" configure option using the lowercase
dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and
dnl PKG_CHECK_MODULES in a single macro.
AC_DEFUN([PKG_WITH_MODULES],
[
m4_pushdef([with_arg], m4_tolower([$1]))
m4_pushdef([description],
[m4_default([$5], [build with ]with_arg[ support])])
m4_pushdef([def_arg], [m4_default([$6], [auto])])
m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes])
m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no])
m4_case(def_arg,
[yes],[m4_pushdef([with_without], [--without-]with_arg)],
[m4_pushdef([with_without],[--with-]with_arg)])
AC_ARG_WITH(with_arg,
AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),,
[AS_TR_SH([with_]with_arg)=def_arg])
AS_CASE([$AS_TR_SH([with_]with_arg)],
[yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)],
[auto],[PKG_CHECK_MODULES([$1],[$2],
[m4_n([def_action_if_found]) $3],
[m4_n([def_action_if_not_found]) $4])])
m4_popdef([with_arg])
m4_popdef([description])
m4_popdef([def_arg])
])dnl PKG_WITH_MODULES
dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
dnl [DESCRIPTION], [DEFAULT])
dnl -----------------------------------------------
dnl
dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES
dnl check._[VARIABLE-PREFIX] is exported as make variable.
AC_DEFUN([PKG_HAVE_WITH_MODULES],
[
PKG_WITH_MODULES([$1],[$2],,,[$3],[$4])
AM_CONDITIONAL([HAVE_][$1],
[test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"])
])dnl PKG_HAVE_WITH_MODULES
dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
dnl [DESCRIPTION], [DEFAULT])
dnl ------------------------------------------------------
dnl
dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after
dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make
dnl and preprocessor variable.
AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES],
[
PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4])
AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
[AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
])dnl PKG_HAVE_DEFINE_WITH_MODULES
# Copyright (C) 2002-2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
@@ -1355,7 +1423,7 @@ dnl DEALINGS IN THE SOFTWARE.
# See the "minimum version" comment for each macro you use to see what
# version you require.
m4_defun([XORG_MACROS_VERSION],[
m4_define([vers_have], [1.20.0])
m4_define([vers_have], [1.20.1])
m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.])))
m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
m4_if(m4_cmp(maj_have, maj_needed), 0,,
@@ -1402,10 +1470,10 @@ rm -f conftest.$ac_ext
AC_MSG_CHECKING([if $RAWCPP requires -traditional])
AC_LANG_CONFTEST([AC_LANG_SOURCE([[Does cpp preserve "whitespace"?]])])
if test `${RAWCPP} < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then
if test `${RAWCPP} < conftest.$ac_ext | grep -c 'preserve "'` -eq 1 ; then
AC_MSG_RESULT([no])
else
if test `${RAWCPP} -traditional < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then
if test `${RAWCPP} -traditional < conftest.$ac_ext | grep -c 'preserve "'` -eq 1 ; then
TRADITIONALCPPFLAGS="-traditional"
RAWCPPFLAGS="${RAWCPPFLAGS} -traditional"
AC_MSG_RESULT([yes])

View File

@@ -1,9 +1,9 @@
#! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.
scriptversion=2018-03-07.03; # UTC
scriptversion=2024-06-19.01; # UTC
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
# Copyright (C) 1999-2024 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
@@ -143,7 +143,7 @@ func_cl_wrapper ()
# configure might choose to run compile as 'compile cc -o foo foo.c'.
eat=1
case $2 in
*.o | *.[oO][bB][jJ])
*.o | *.lo | *.[oO][bB][jJ])
func_file_conv "$2"
set x "$@" -Fo"$file"
shift
@@ -248,14 +248,17 @@ If you are trying to build a whole package this is not the
right script to run: please start by reading the file 'INSTALL'.
Report bugs to <bug-automake@gnu.org>.
GNU Automake home page: <https://www.gnu.org/software/automake/>.
General help using GNU software: <https://www.gnu.org/gethelp/>.
EOF
exit $?
;;
-v | --v*)
echo "compile $scriptversion"
echo "compile (GNU Automake) $scriptversion"
exit $?
;;
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
clang-cl | *[/\\]clang-cl | clang-cl.exe | *[/\\]clang-cl.exe | \
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
func_cl_wrapper "$@" # Doesn't return...
;;

1781
app/xprop/config.guess vendored

File diff suppressed because it is too large Load Diff

2954
app/xprop/config.sub vendored

File diff suppressed because it is too large Load Diff

36
app/xprop/configure vendored
View File

@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for xprop 1.2.7.
# Generated by GNU Autoconf 2.71 for xprop 1.2.8.
#
# Report bugs to <https://gitlab.freedesktop.org/xorg/app/xprop/-/issues>.
#
@@ -612,8 +612,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='xprop'
PACKAGE_TARNAME='xprop'
PACKAGE_VERSION='1.2.7'
PACKAGE_STRING='xprop 1.2.7'
PACKAGE_VERSION='1.2.8'
PACKAGE_STRING='xprop 1.2.8'
PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/xorg/app/xprop/-/issues'
PACKAGE_URL=''
@@ -1350,7 +1350,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures xprop 1.2.7 to adapt to many kinds of systems.
\`configure' configures xprop 1.2.8 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1421,7 +1421,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of xprop 1.2.7:";;
short | recursive ) echo "Configuration of xprop 1.2.8:";;
esac
cat <<\_ACEOF
@@ -1537,7 +1537,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
xprop configure 1.2.7
xprop configure 1.2.8
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1745,7 +1745,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by xprop $as_me 1.2.7, which was
It was created by xprop $as_me 1.2.8, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -2982,7 +2982,7 @@ fi
# Define the identity of the package.
PACKAGE='xprop'
VERSION='1.2.7'
VERSION='1.2.8'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -10924,14 +10924,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
XPROP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "x11 xproto >= 7.0.25" 2>&1`
XPROP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "x11 xproto >= 7.0.25" 2>&1`
else
XPROP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "x11 xproto >= 7.0.25" 2>&1`
XPROP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "x11 xproto >= 7.0.25" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$XPROP_PKG_ERRORS" >&5
# Put the nasty error message in config.log where it belongs
echo "$XPROP_PKG_ERRORS" >&5
as_fn_error $? "Package requirements (x11 xproto >= 7.0.25) were not met:
as_fn_error $? "Package requirements (x11 xproto >= 7.0.25) were not met:
$XPROP_PKG_ERRORS
@@ -10944,7 +10944,7 @@ See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
@@ -10957,8 +10957,8 @@ See the pkg-config man page for more details.
To get pkg-config, see <http://pkg-config.freedesktop.org/>.
See \`config.log' for more details" "$LINENO" 5; }
else
XPROP_CFLAGS=$pkg_cv_XPROP_CFLAGS
XPROP_LIBS=$pkg_cv_XPROP_LIBS
XPROP_CFLAGS=$pkg_cv_XPROP_CFLAGS
XPROP_LIBS=$pkg_cv_XPROP_LIBS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
@@ -11605,7 +11605,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by xprop $as_me 1.2.7, which was
This file was extended by xprop $as_me 1.2.8, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -11673,7 +11673,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
xprop config.status 1.2.7
xprop config.status 1.2.8
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"

View File

@@ -22,7 +22,7 @@ dnl Process this file with autoconf to create configure.
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xprop], [1.2.7],
AC_INIT([xprop], [1.2.8],
[https://gitlab.freedesktop.org/xorg/app/xprop/-/issues], [xprop])
AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_HEADERS([config.h])

View File

@@ -780,18 +780,21 @@ Format_Icons (const unsigned long *icon, int len)
while (icon < end)
{
unsigned long width, height, display_width;
unsigned long width, height, display_width, display_height;
unsigned int icon_pixel_bytes;
unsigned int icon_line_bytes;
int offset;
width = *icon++;
height = *icon++;
display_width = width * 2; /* Two characters per icon pixel. */
width = display_width = *icon++;
height = display_height = *icon++;
if (is_truecolor_term())
display_height /= 2; /* Two vertical icon pixels per character. */
else
display_width *= 2; /* Two horizontal characters per icon pixel. */
icon_pixel_bytes = 1;
if (is_truecolor_term())
icon_pixel_bytes = 25; /* 16 control characters, and up to 9 chars of RGB. */
icon_pixel_bytes = 39; /* 21 control characters, and up to 18 chars of RGB. */
else if (is_utf8_locale())
icon_pixel_bytes = 3; /* Up to 3 bytes per character in that mode. */
@@ -801,7 +804,7 @@ Format_Icons (const unsigned long *icon, int len)
offset = (tail - result);
alloced += 80; /* For the header, final newline, color reset */
alloced += icon_line_bytes * height; /* For the rows */
alloced += icon_line_bytes * display_height; /* For the rows */
result = realloc (result, alloced);
if (!result)
@@ -820,7 +823,7 @@ Format_Icons (const unsigned long *icon, int len)
continue;
}
for (unsigned int h = 0; h < height; ++h)
for (unsigned int h = 0; h < display_height; ++h)
{
tail += sprintf (tail, "\t");
@@ -843,12 +846,19 @@ Format_Icons (const unsigned long *icon, int len)
if (is_truecolor_term())
{
float opacity = a / 255.0;
unsigned long pixel2 = *(icon + width - 1);
r = r * opacity;
g = g * opacity;
b = b * opacity;
tail += sprintf (tail, "\033[48;2;%d;%d;%d;", r, g, b);
opacity = ((pixel2 & 0xff000000) >> 24) / 255.0;
r = ((pixel2 & 0x00ff0000) >> 16) * opacity;
g = ((pixel2 & 0x0000ff00) >> 8) * opacity;
b = ((pixel2 & 0x000000ff) >> 0) * opacity;
tail += sprintf (tail, "38;2;%d;%d;%dm\342\226\204", r, g, b);
tail += sprintf (tail, "\033[38;2;%d;%d;%dm\342\226\210\342\226\210", r, g, b );
}
else if (is_utf8_locale())
{
@@ -879,13 +889,14 @@ Format_Icons (const unsigned long *icon, int len)
}
}
if (is_truecolor_term()) {
/* Reset colors before newline to avoid bleed. */
tail += sprintf (tail, "\033[0m");
icon += width; /* Advance past handled row. */
}
tail += sprintf (tail, "\n");
}
/* Reset colors. */
if (is_truecolor_term())
tail += sprintf (tail, "\033[0m");
tail += sprintf (tail, "\n");
}