Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package xosview for openSUSE:Factory checked in at 2023-06-23 21:53:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xosview (Old) and /work/SRC/openSUSE:Factory/.xosview.new.15902 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xosview" Fri Jun 23 21:53:02 2023 rev:50 rq:1094802 version:1.24 Changes: -------- --- /work/SRC/openSUSE:Factory/xosview/xosview.changes 2022-09-20 19:24:15.734590818 +0200 +++ /work/SRC/openSUSE:Factory/.xosview.new.15902/xosview.changes 2023-06-23 21:53:04.622777373 +0200 @@ -1,0 +2,9 @@ +Fri Jun 23 08:11:54 UTC 2023 - Dr. Werner Fink <wer...@suse.de> + +- Update to version 1.24 + * Fix many compiler warnings +- Port patches + * xosview-1.19-appdef.patch + * xosview-1.21-lmstemp.patch + +------------------------------------------------------------------- Old: ---- xosview-1.23.tar.gz New: ---- xosview-1.24.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xosview.spec ++++++ --- /var/tmp/diff_new_pack.SB1sjB/_old 2023-06-23 21:53:05.518782507 +0200 +++ /var/tmp/diff_new_pack.SB1sjB/_new 2023-06-23 21:53:05.522782530 +0200 @@ -1,7 +1,7 @@ # # spec file for package xosview # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %define _appdefdir %{_datadir}/X11/app-defaults Name: xosview -Version: 1.23 +Version: 1.24 Release: 0 Summary: System Load Information License: GPL-2.0-or-later ++++++ xosview-1.19-appdef.patch ++++++ --- /var/tmp/diff_new_pack.SB1sjB/_old 2023-06-23 21:53:05.558782736 +0200 +++ /var/tmp/diff_new_pack.SB1sjB/_new 2023-06-23 21:53:05.562782759 +0200 @@ -12,7 +12,7 @@ #include <ctype.h> #include <unistd.h> // for access(), etc. BCG #include <iostream> -@@ -135,34 +136,35 @@ Listed from weakest to strongest: +@@ -136,34 +137,35 @@ Listed from weakest to strongest: // Merge in the system resource database. char rfilename[2048]; ++++++ xosview-1.21-lmstemp.patch ++++++ --- /var/tmp/diff_new_pack.SB1sjB/_old 2023-06-23 21:53:05.574782828 +0200 +++ /var/tmp/diff_new_pack.SB1sjB/_new 2023-06-23 21:53:05.578782851 +0200 @@ -1,15 +1,12 @@ --- - linux/MeterMaker.cc | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) + linux/MeterMaker.cc | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) --- linux/MeterMaker.cc -+++ linux/MeterMaker.cc 2020-03-23 09:48:53.634728539 +0000 -@@ -213,11 +213,14 @@ void MeterMaker::makeMeters(void){ - const char *tempfile, *highfile, *lowfile, *name, *label; - snprintf( caption, 16, "ACT/HIGH/%s", ++++ linux/MeterMaker.cc 2023-06-23 08:03:28.573943184 +0000 +@@ -215,9 +215,12 @@ void MeterMaker::makeMeters(void){ _xos->getResourceOrUseDefault("lmstempHighest", "100") ); -- for (int i = 1 ; ; i++) { -+ for (int i = 1 ; i < 1000 ; i++) { + for (int i = 1 ; i < 1000 ; i++) { snprintf(s, 16, "lmstemp%d", i); - tempfile = _xos->getResourceOrUseDefault(s, NULL); + tempfile = (char*)_xos->getResourceOrUseDefault(s, NULL); ++++++ xosview-1.23.tar.gz -> xosview-1.24.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/Host.cc new/xosview-1.24/Host.cc --- old/xosview-1.23/Host.cc 2020-07-11 14:10:34.000000000 +0200 +++ new/xosview-1.24/Host.cc 2022-01-17 15:27:34.000000000 +0100 @@ -65,14 +65,14 @@ // copy the official name. int hnamelen = strlen(hent->h_name) + 1; _hent.h_name = new char[hnamelen]; - strncpy((char *)_hent.h_name, hent->h_name, hnamelen); + memcpy(_hent.h_name, hent->h_name, hnamelen); // copy the aliases. _hent.h_aliases = new char *[_numAliases + 1]; for (int i = 0 ; i < _numAliases ; i++){ int len = strlen(hent->h_aliases[i]) + 1; - _hent.h_aliases[i] = new char[len + 1]; - strncpy(_hent.h_aliases[i], hent->h_aliases[i], len); + _hent.h_aliases[i] = new char[len]; + memcpy(_hent.h_aliases[i], hent->h_aliases[i], len); } _hent.h_aliases[_numAliases] = NULL; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/Makefile new/xosview-1.24/Makefile --- old/xosview-1.23/Makefile 2020-07-11 14:10:34.000000000 +0200 +++ new/xosview-1.24/Makefile 2022-01-17 15:27:34.000000000 +0100 @@ -33,6 +33,7 @@ llist.o \ main.o \ meter.o \ + stringutils.o \ xosview.o \ xwin.o diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/Xrm.cc new/xosview-1.24/Xrm.cc --- old/xosview-1.23/Xrm.cc 2020-07-11 14:10:34.000000000 +0200 +++ new/xosview-1.24/Xrm.cc 2022-01-17 15:27:34.000000000 +0100 @@ -12,6 +12,7 @@ #include <ctype.h> #include <unistd.h> // for access(), etc. BCG #include <iostream> +#include "stringutils.h" extern char *defaultXResourceString; @@ -79,14 +80,14 @@ { // Let's try with a non-uppercased class name. char fcn_lower[1024]; - strncpy(fcn_lower, className(), 1024); + snprintf(fcn_lower, 1024, "%s", className()); char *p = fcn_lower; while (p && *p) { *p = tolower(*p); p++; } - snprintf(fcn, 1024, "%s.%s", fcn_lower, rname); + snprintf_or_abort(fcn, 1024, "%s.%s", fcn_lower, rname); XrmGetResource(_db, frn, fcn, &type, &val); } @@ -223,7 +224,7 @@ void Xrm::initClassName(const char* name){ char className[256]; - strncpy(className, name, 255); // Avoid evil people out there... + snprintf(className, 256, "%s", name); // Avoid evil people out there... className[0] = toupper(className[0]); if (className[0] == 'X') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/bitfieldmeter.cc new/xosview-1.24/bitfieldmeter.cc --- old/xosview-1.23/bitfieldmeter.cc 2020-07-11 14:10:34.000000000 +0200 +++ new/xosview-1.24/bitfieldmeter.cc 2022-01-17 15:27:34.000000000 +0100 @@ -180,7 +180,7 @@ n++; } tmp2++; - strncpy( buff, tmp1, n ); + memcpy( buff, tmp1, n ); buff[n] = '\0'; parent_->setStippleN(i%4); parent_->setForeground( colors_[i] ); @@ -364,6 +364,5 @@ delete[] fieldLegend_; int len = strlen(fieldlegend); fieldLegend_ = new char[len + 1]; - strncpy( fieldLegend_, fieldlegend, len ); - fieldLegend_[len] = '\0'; // strncpy() will not null terminate if s2 > len + memcpy(fieldLegend_, fieldlegend, len + 1); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/linux/MeterMaker.cc new/xosview-1.24/linux/MeterMaker.cc --- old/xosview-1.23/linux/MeterMaker.cc 2020-07-11 14:10:34.000000000 +0200 +++ new/xosview-1.24/linux/MeterMaker.cc 2022-01-17 15:27:34.000000000 +0100 @@ -213,7 +213,7 @@ const char *tempfile, *highfile, *lowfile, *name, *label; snprintf( caption, 16, "ACT/HIGH/%s", _xos->getResourceOrUseDefault("lmstempHighest", "100") ); - for (int i = 1 ; ; i++) { + for (int i = 1 ; i < 1000 ; i++) { snprintf(s, 16, "lmstemp%d", i); tempfile = _xos->getResourceOrUseDefault(s, NULL); if (!tempfile || !*tempfile) @@ -235,7 +235,7 @@ char caption[32]; snprintf(caption, 32, "ACT(\260C)/HIGH/%s", _xos->getResourceOrUseDefault("acpitempHighest", "100")); - for (int i = 1 ; ; i++) { + for (int i = 1 ; i < 100 ; i++) { char s[16]; snprintf(s, 16, "acpitemp%d", i); const char *tempfile = _xos->getResourceOrUseDefault(s, NULL); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/linux/acpitemp.cc new/xosview-1.24/linux/acpitemp.cc --- old/xosview-1.23/linux/acpitemp.cc 2020-07-11 14:10:34.000000000 +0200 +++ new/xosview-1.24/linux/acpitemp.cc 2022-01-17 15:27:34.000000000 +0100 @@ -66,8 +66,8 @@ } if (temp_found && high_found) { - strncpy(_tempfile, tempfile, PATH_SIZE); - strncpy(_highfile, highfile, PATH_SIZE); + snprintf(_tempfile, PATH_SIZE, "%s", tempfile); + snprintf(_highfile, PATH_SIZE, "%s", highfile); return true; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/linux/btrymeter.cc new/xosview-1.24/linux/btrymeter.cc --- old/xosview-1.23/linux/btrymeter.cc 2020-07-11 14:10:34.000000000 +0200 +++ new/xosview-1.24/linux/btrymeter.cc 2022-01-17 15:27:34.000000000 +0100 @@ -18,6 +18,7 @@ #include <string> #include <iostream> #include <sstream> +#include "stringutils.h" static const char APMFILENAME[] = "/proc/apm"; static const char ACPIBATTERYDIR[] = "/proc/acpi/battery"; @@ -125,9 +126,9 @@ continue; if (!strncmp(dp->d_name, "..", 2)) continue; - snprintf(dirname, 80, "%s/%s", SYSPOWERDIR, dp->d_name); + snprintf_or_abort(dirname, 80, "%s/%s", SYSPOWERDIR, dp->d_name); if (stat(dirname, &buf) == 0 && S_ISDIR(buf.st_mode)) { - snprintf(f, 80, "%s/%s", dirname, "/type"); + snprintf_or_abort(f, 80, "%s%s", dirname, "/type"); type.open(f); if (type.good()) { type >> t; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/linux/coretemp.cc new/xosview-1.24/linux/coretemp.cc --- old/xosview-1.23/linux/coretemp.cc 2020-07-11 14:10:34.000000000 +0200 +++ new/xosview-1.24/linux/coretemp.cc 2022-01-17 15:27:34.000000000 +0100 @@ -12,6 +12,7 @@ // #include "coretemp.h" +#include <stdarg.h> #include <stdlib.h> #include <stdio.h> #include <string.h> @@ -22,6 +23,7 @@ #include <fstream> #include <iostream> #include <string> +#include "stringutils.h" #define PATH_SIZE 128 @@ -147,11 +149,12 @@ !strncmp(dent->d_name, "..", 2) ) continue; - snprintf(name, PATH_SIZE, "%s/%s/name", SYS_HWMON, dent->d_name); + snprintf_or_abort(name, PATH_SIZE, "%s/%s/name", SYS_HWMON, dent->d_name); file.open(name); if (!file) { // Older kernels place the name in device directory. - snprintf(name, PATH_SIZE, "%s/%s/device/name", SYS_HWMON, dent->d_name); + snprintf_or_abort(name, PATH_SIZE, + "%s/%s/device/name", SYS_HWMON, dent->d_name); file.open(name); if (!file) continue; @@ -167,19 +170,19 @@ // K10 has only one sensor per physical CPU if (_cpu < 0) { // avg or max for (i = 1; i <= cpucount; i++) { - snprintf(name, PATH_SIZE, "%s/%s/temp%d_input", + snprintf_or_abort(name, PATH_SIZE, "%s/%s/temp%d_input", SYS_HWMON, dent->d_name, i); if (!( stat(name, &buf) == 0 && S_ISREG(buf.st_mode) )) - snprintf(name, PATH_SIZE, "%s/%s/device/temp%d_input", + snprintf_or_abort(name, PATH_SIZE, "%s/%s/device/temp%d_input", SYS_HWMON, dent->d_name, i); _cpus.push_back(name); } } else { // single sensor - snprintf(name, PATH_SIZE, "%s/%s/temp%d_input", + snprintf_or_abort(name, PATH_SIZE, "%s/%s/temp%d_input", SYS_HWMON, dent->d_name, _cpu + 1); if (!( stat(name, &buf) == 0 && S_ISREG(buf.st_mode) )) - snprintf(name, PATH_SIZE, "%s/%s/device/temp%d_input", + snprintf_or_abort(name, PATH_SIZE, "%s/%s/device/temp%d_input", SYS_HWMON, dent->d_name, i); _cpus.push_back(name); } @@ -309,10 +312,12 @@ if ( !strncmp(dent->d_name, ".", 1) || !strncmp(dent->d_name, "..", 2) ) continue; - snprintf(s, PATH_SIZE, "%s/%s/name", SYS_HWMON, dent->d_name); - if (!( stat(s, &buf) == 0 && S_ISREG(buf.st_mode) )) + snprintf_or_abort(s, PATH_SIZE, "%s/%s/name", SYS_HWMON, dent->d_name); + if (!( stat(s, &buf) == 0 && S_ISREG(buf.st_mode) )) { // Older kernels place the name in device directory. - snprintf(s, PATH_SIZE, "%s/%s/device/name", SYS_HWMON, dent->d_name); + snprintf_or_abort(s, PATH_SIZE, + "%s/%s/device/name", SYS_HWMON, dent->d_name); + } file.open(s); if ( file.good() ) { @@ -322,9 +327,11 @@ strncmp(dummy.c_str(), "k10temp", 7) == 0 ) { if (cpu++ < pkg) continue; - snprintf(s, PATH_SIZE, "%s/%s/temp*_input", SYS_HWMON, dent->d_name); + snprintf_or_abort(s, PATH_SIZE, + "%s/%s/temp*_input", SYS_HWMON, dent->d_name); glob(s, 0, NULL, &gbuf); - snprintf(s, PATH_SIZE, "%s/%s/device/temp*_input", SYS_HWMON, dent->d_name); + snprintf_or_abort(s, PATH_SIZE, + "%s/%s/device/temp*_input", SYS_HWMON, dent->d_name); glob(s, GLOB_APPEND, NULL, &gbuf); count += gbuf.gl_pathc; globfree(&gbuf); @@ -364,10 +371,11 @@ if ( !strncmp(dent->d_name, ".", 1) || !strncmp(dent->d_name, "..", 2) ) continue; - snprintf(s, PATH_SIZE, "%s/%s/name", SYS_HWMON, dent->d_name); + snprintf_or_abort(s, PATH_SIZE, "%s/%s/name", SYS_HWMON, dent->d_name); if (!( stat(s, &buf) == 0 && S_ISREG(buf.st_mode) )) // Older kernels place the name in device directory. - snprintf(s, PATH_SIZE, "%s/%s/device/name", SYS_HWMON, dent->d_name); + snprintf_or_abort(s, PATH_SIZE, + "%s/%s/device/name", SYS_HWMON, dent->d_name); file.open(s); if ( file.good() ) { file >> dummy; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/linux/cpumeter.cc new/xosview-1.24/linux/cpumeter.cc --- old/xosview-1.23/linux/cpumeter.cc 2020-07-11 14:10:34.000000000 +0200 +++ new/xosview-1.24/linux/cpumeter.cc 2022-01-17 15:27:34.000000000 +0100 @@ -326,8 +326,9 @@ } const char *CPUMeter::toUpper(const char *str){ - static char buffer[MAX_PROCSTAT_LENGTH]; - strncpy(buffer, str, MAX_PROCSTAT_LENGTH); + static char buffer[MAX_PROCSTAT_LENGTH + 1]; + snprintf(buffer, MAX_PROCSTAT_LENGTH + 1, "%s", str); + buffer[MAX_PROCSTAT_LENGTH] = 0; for (char *tmp = buffer ; *tmp != '\0' ; tmp++) *tmp = toupper(*tmp); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/linux/netmeter.cc new/xosview-1.24/linux/netmeter.cc --- old/xosview-1.23/linux/netmeter.cc 2020-07-11 14:10:34.000000000 +0200 +++ new/xosview-1.24/linux/netmeter.cc 2022-01-17 15:27:34.000000000 +0100 @@ -16,6 +16,7 @@ #include <iostream> #include <fstream> #include <string> +#include "stringutils.h" static const char PROCNETDEV[] = "/proc/net/dev"; static const char SYSCLASSNET[] = "/sys/class/net"; @@ -137,10 +138,12 @@ ( _ignored && ent->d_name == _netIface) ) ) continue; - snprintf(filename, 128, "%s/%s/statistics/rx_bytes", SYSCLASSNET, ent->d_name); + snprintf_or_abort(filename, 128, + "%s/%s/statistics/rx_bytes", SYSCLASSNET, ent->d_name); totin += getCount(filename); - snprintf(filename, 128, "%s/%s/statistics/tx_bytes", SYSCLASSNET, ent->d_name); + snprintf_or_abort(filename, 128, + "%s/%s/statistics/tx_bytes", SYSCLASSNET, ent->d_name); totout += getCount(filename); } closedir(dir); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/linux/nfsmeter.cc new/xosview-1.24/linux/nfsmeter.cc --- old/xosview-1.23/linux/nfsmeter.cc 2020-07-11 14:10:34.000000000 +0200 +++ new/xosview-1.24/linux/nfsmeter.cc 2022-01-17 15:27:34.000000000 +0100 @@ -96,14 +96,14 @@ if (t < 0) t = 0.1; - maxpackets_ = MAX(netcnt, calls) - _lastNetCnt; - if (maxpackets_ == 0) { - maxpackets_ = netcnt; - } else { - fields_[0] = (badcalls - _lastBad) * t; - fields_[1] = (netudpcnt - _lastUdp) * t; - fields_[2] = (nettcpcnt - _lastTcp) * t; - } + maxpackets_ = MAX(netcnt, calls) - _lastNetCnt; + if (maxpackets_ == 0) { + maxpackets_ = netcnt; + } else { + fields_[0] = (badcalls - _lastBad) * t; + fields_[1] = (netudpcnt - _lastUdp) * t; + fields_[2] = (nettcpcnt - _lastTcp) * t; + } total_ = fields_[0] + fields_[1] + fields_[2]; if (total_ > maxpackets_) @@ -178,14 +178,14 @@ if (t < 0) t = 0.1; - maxpackets_ = calls - _lastcalls; - if (maxpackets_ == 0) { - maxpackets_ = calls; - } else { - fields_[2] = (calls - _lastcalls) * t; - fields_[1] = (authrefresh - _lastauthrefresh) * t; - fields_[0] = (retrns - _lastretrns) * t; - } + maxpackets_ = calls - _lastcalls; + if (maxpackets_ == 0) { + maxpackets_ = calls; + } else { + fields_[2] = (calls - _lastcalls) * t; + fields_[1] = (authrefresh - _lastauthrefresh) * t; + fields_[0] = (retrns - _lastretrns) * t; + } total_ = fields_[0] + fields_[1] + fields_[2]; if (total_ > maxpackets_) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/linux/serialmeter.cc new/xosview-1.24/linux/serialmeter.cc --- old/xosview-1.23/linux/serialmeter.cc 2020-07-11 14:10:34.000000000 +0200 +++ new/xosview-1.24/linux/serialmeter.cc 2022-01-17 15:27:34.000000000 +0100 @@ -23,9 +23,8 @@ * To fetch status information requires ioperm() and inb() * otherwise these meter is largely a no-op. */ -#if defined(__i386__) || defined(__ia64__) || defined(__amd64__) +#if defined(__i386__) || defined(__amd64__) #include <sys/io.h> -#include <sys/perm.h> #define HAVE_IOPERM #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/meter.cc new/xosview-1.24/meter.cc --- old/xosview-1.23/meter.cc 2020-07-11 14:10:34.000000000 +0200 +++ new/xosview-1.24/meter.cc 2022-01-17 15:27:34.000000000 +0100 @@ -41,8 +41,7 @@ int len = strlen(title); title_ = new char[len + 1]; - strncpy( title_, title, len ); - title_[len] = '\0'; // strncpy() will not null terminate if s2 > len + memcpy( title_, title, len + 1 ); } void Meter::legend( const char *legend ){ @@ -52,8 +51,7 @@ int len = strlen(legend); legend_ = new char[len + 1]; - strncpy( legend_, legend, len ); - legend_[len] = '\0'; // strncpy() will not null terminate if s2 > len + memcpy( legend_, legend, len + 1 ); } void Meter::resize( int x, int y, int width, int height ){ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/stringutils.cc new/xosview-1.24/stringutils.cc --- old/xosview-1.23/stringutils.cc 1970-01-01 01:00:00.000000000 +0100 +++ new/xosview-1.24/stringutils.cc 2022-01-17 15:27:34.000000000 +0100 @@ -0,0 +1,23 @@ +#include "stringutils.h" + +#include <iostream> +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> + +void snprintf_or_abort(char* str, size_t size, const char* format, ...) { + va_list args; + va_start(args, format); + int needed = vsnprintf(str, size, format, args); + va_end(args); + if (needed < 0) { + std::cerr << "Internal error: vsnprintf returned an error in " + "snprintf_or_abort" << std::endl; + abort(); + } + if ((size_t)needed >= size) { + std::cerr << "Internal error: Buffer to snprintf_or_abort too small, " + "required " << needed << " but got " << size << std::endl; + abort(); + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/stringutils.h new/xosview-1.24/stringutils.h --- old/xosview-1.23/stringutils.h 1970-01-01 01:00:00.000000000 +0100 +++ new/xosview-1.24/stringutils.h 2022-01-17 15:27:34.000000000 +0100 @@ -0,0 +1,11 @@ +#ifndef _STRINGUTILS_H_ +#define _STRINGUTILS_H_ + +#include <stdlib.h> + +/** Like snprintf, except that instead of truncating the string, it + * will print an error message and abort(). + */ +void snprintf_or_abort(char* str, size_t size, const char* format, ...); + +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/xosview.1 new/xosview-1.24/xosview.1 --- old/xosview-1.23/xosview.1 2020-07-11 14:10:34.000000000 +0200 +++ new/xosview-1.24/xosview.1 2022-01-17 15:27:34.000000000 +0100 @@ -406,7 +406,11 @@ xosview*font: \fIfont\fP .RS -This is the font that xosview will use. +This is the font that xosview will use. This is a bitmap font +rendered at the X server. To list the available fonts, use +.BR xlsfonts (1), +and rehash the list with +.BR xset (1). .RE xosview*background: \fIcolor\fP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/xosview.cc new/xosview-1.24/xosview.cc --- old/xosview-1.23/xosview.cc 2020-07-11 14:10:34.000000000 +0200 +++ new/xosview-1.24/xosview.cc 2022-01-17 15:27:34.000000000 +0100 @@ -255,9 +255,10 @@ const char *XOSView::winname( void ){ char host[100]; gethostname( host, 99 ); - static char name[101]; /* We return a pointer to this, - so it can't be local. */ - snprintf( name, 100, "%s%s", NAME, host); + host[99] = 0; + static char name[120]; /* We return a pointer to this, + so it can't be local. */ + snprintf( name, 120, "%s%s", NAME, host); // Allow overriding of this name through the -title option. return getResourceOrUseDefault ("title", name); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/xosview.xpm new/xosview-1.24/xosview.xpm --- old/xosview-1.23/xosview.xpm 2020-07-11 14:10:34.000000000 +0200 +++ new/xosview-1.24/xosview.xpm 1970-01-01 01:00:00.000000000 +0100 @@ -1,639 +0,0 @@ -/* XPM */ -static char * xosview_xpm[] = { -"25 32 604 2", -" c None", -". c #00A0A1", -"+ c #038A8D", -"@ c #048588", -"# c #028B8F", -"$ c #028B8E", -"% c #038B8E", -"& c #028A8E", -"* c #019495", -"= c #00007E", -"- c #00007F", -"; c #01007D", -"> c #1C0B70", -", c #200D6E", -"' c #1F0D6E", -") c #1D0B70", -"! c #0E0582", -"~ c #0A0F87", -"{ c #111D8B", -"] c #080A85", -"^ c #00588D", -"/ c #0C0482", -"( c #1B1986", -"_ c #191785", -": c #090881", -"< c #070681", -"[ c #070783", -"} c #130F7C", -"| c #6E494C", -"1 c #895A3F", -"2 c #8B5C3E", -"3 c #704A4A", -"4 c #5B4A7C", -"5 c #5690A3", -"6 c #487298", -"7 c #426694", -"8 c #130975", -"9 c #171078", -"0 c #140C7B", -"a c #005B8C", -"b c #058789", -"c c #3B2F8C", -"d c #796E99", -"e c #6E6397", -"f c #292588", -"g c #272388", -"h c #302B8A", -"i c #694A63", -"j c #845C57", -"k c #815B57", -"l c #805A58", -"m c #835B53", -"n c #855650", -"o c #855851", -"p c #865A50", -"q c #896254", -"r c #896153", -"s c #8A6152", -"t c #8B5F51", -"u c #8A5F51", -"v c #8B6151", -"w c #8E6350", -"x c #7A6068", -"y c #045A8A", -"z c #038C8F", -"A c #0E0682", -"B c #0B0A82", -"C c #0A0982", -"D c #050581", -"E c #0C0B82", -"F c #080980", -"G c #403E68", -"H c #524F5F", -"I c #564966", -"J c #816A53", -"K c #745E52", -"L c #675158", -"M c #6D5657", -"N c #6F5063", -"O c #714C51", -"P c #6F4C59", -"Q c #65546D", -"R c #626478", -"S c #646778", -"T c #585272", -"U c #4B3667", -"V c #402F72", -"W c #015D8D", -"X c #038C8E", -"Y c #1E1486", -"Z c #37328B", -"` c #242087", -" . c #181685", -".. c #221F87", -"+. c #151583", -"@. c #193276", -"#. c #1F3F73", -"$. c #293986", -"%. c #636362", -"&. c #5D5F5C", -"*. c #4A4B65", -"=. c #535367", -"-. c #4A3E7B", -";. c #533B5E", -">. c #503C6A", -",. c #38428B", -"'. c #2D559D", -"). c #3464A1", -"!. c #2C4994", -"~. c #111585", -"{. c #0A0882", -"]. c #005C8D", -"^. c #048C8E", -"/. c #3A2E8C", -"(. c #4C4490", -"_. c #49438F", -":. c #312C8A", -"<. c #443E8E", -"[. c #46408F", -"}. c #34308A", -"|. c #817F56", -"1. c #A4A045", -"2. c #979B55", -"3. c #9A9749", -"4. c #A2A249", -"5. c #A6A345", -"6. c #A1A04B", -"7. c #98994C", -"8. c #9C9A4B", -"9. c #8C9151", -"0. c #537268", -"a. c #356073", -"b. c #336377", -"c. c #8D9652", -"d. c #6D815F", -"e. c #435E78", -"f. c #080181", -"g. c #070781", -"h. c #090882", -"i. c #0C0D80", -"j. c #344868", -"k. c #405761", -"l. c #3B496C", -"m. c #7D7B54", -"n. c #6B6B50", -"o. c #5D5D56", -"p. c #666454", -"q. c #675B64", -"r. c #6A554E", -"s. c #625258", -"t. c #374C81", -"u. c #305F90", -"v. c #2F6292", -"w. c #435D7D", -"x. c #242E75", -"y. c #131A7B", -"z. c #201786", -"A. c #302C8A", -"B. c #1C1A86", -"C. c #181585", -"D. c #1D1A86", -"E. c #2A2588", -"F. c #151483", -"G. c #031578", -"H. c #031D75", -"I. c #161C84", -"J. c #393465", -"K. c #3D395E", -"L. c #2B2768", -"M. c #332D6B", -"N. c #24157C", -"O. c #2F1663", -"P. c #2B1770", -"Q. c #1C1C87", -"R. c #0A2798", -"S. c #153A9D", -"T. c #0D2293", -"U. c #000085", -"V. c #000082", -"W. c #005B8D", -"X. c #048D8E", -"Y. c #42368D", -"Z. c #575092", -"`. c #4C448F", -" + c #47408F", -".+ c #574E92", -"++ c #5C5393", -"@+ c #45408E", -"#+ c #507F74", -"$+ c #5E9F6D", -"%+ c #5F9D6F", -"&+ c #609E6C", -"*+ c #68A069", -"=+ c #66A16A", -"-+ c #609D6D", -";+ c #5E9C6E", -">+ c #5F9B6C", -",+ c #7AA966", -"'+ c #C3D54F", -")+ c #E5EE43", -"!+ c #EDF341", -"~+ c #7BB065", -"{+ c #A3C155", -"]+ c #D8D14E", -"^+ c #04608C", -"/+ c #000080", -"(+ c #01037F", -"_+ c #081978", -":+ c #0A1C78", -"<+ c #05117B", -"[+ c #081679", -"}+ c #091C78", -"|+ c #0A2077", -"1+ c #0F1979", -"2+ c #352672", -"3+ c #352264", -"4+ c #372463", -"5+ c #1E1A7B", -"6+ c #270872", -"7+ c #3B0062", -"8+ c #2E0169", -"9+ c #3A0062", -"0+ c #095B89", -"a+ c #110883", -"b+ c #1E1C86", -"c+ c #080781", -"d+ c #141184", -"e+ c #110F84", -"f+ c #0E0F82", -"g+ c #112F73", -"h+ c #153E6E", -"i+ c #102E73", -"j+ c #163E6E", -"k+ c #113072", -"l+ c #153E6F", -"m+ c #20496A", -"n+ c #353B74", -"o+ c #5E3A5D", -"p+ c #6F4348", -"q+ c #5A3551", -"r+ c #36297A", -"s+ c #4E0E65", -"t+ c #7E0040", -"u+ c #540157", -"v+ c #770348", -"w+ c #0D5C86", -"x+ c #058E8F", -"y+ c #85719B", -"z+ c #6C6296", -"A+ c #4F4790", -"B+ c #39338C", -"C+ c #7E729A", -"D+ c #877A9C", -"E+ c #625994", -"F+ c #385D75", -"G+ c #3C706E", -"H+ c #3B6D6F", -"I+ c #3D7170", -"J+ c #41706D", -"K+ c #B2773E", -"L+ c #B9363B", -"M+ c #B4173C", -"N+ c #B3193D", -"O+ c #B51A3D", -"P+ c #B71B3A", -"Q+ c #B51D3B", -"R+ c #B31C3D", -"S+ c #B12743", -"T+ c #6C98AC", -"U+ c #015F8F", -"V+ c #00007C", -"W+ c #00007D", -"X+ c #1B2A7B", -"Y+ c #223879", -"Z+ c #213579", -"`+ c #2C3481", -" @ c #30468F", -".@ c #324C91", -"+@ c #3E508D", -"@@ c #322D84", -"#@ c #240F7B", -"$@ c #26127C", -"%@ c #25137D", -"&@ c #1D1A87", -"*@ c #1E1485", -"=@ c #36318B", -"-@ c #2C2889", -";@ c #100F83", -">@ c #121183", -",@ c #1B1886", -"'@ c #171884", -")@ c #234B7D", -"!@ c #295B7C", -"~@ c #214980", -"{@ c #48638D", -"]@ c #355E9F", -"^@ c #4684AB", -"/@ c #407AA9", -"(@ c #254597", -"_@ c #13238C", -":@ c #15268D", -"<@ c #161C89", -"[@ c #45388E", -"}@ c #6F6497", -"|@ c #5D5493", -"1@ c #252188", -"2@ c #423B8E", -"3@ c #37328C", -"4@ c #486AA1", -"5@ c #5483AA", -"6@ c #5484A9", -"7@ c #5082A6", -"8@ c #5383A6", -"9@ c #517FA7", -"0@ c #517DA6", -"a@ c #5380A7", -"b@ c #5789A9", -"c@ c #588AAA", -"d@ c #588BAA", -"e@ c #598CAB", -"f@ c #577BA5", -"g@ c #015E8E", -"h@ c #050080", -"i@ c #030380", -"j@ c #040380", -"k@ c #111083", -"l@ c #060480", -"m@ c #3754A3", -"n@ c #4669A9", -"o@ c #4757A5", -"p@ c #4A57B8", -"q@ c #3F4DAE", -"r@ c #405196", -"s@ c #3F73A5", -"t@ c #4782A9", -"u@ c #2D4D98", -"v@ c #223891", -"w@ c #1F318F", -"x@ c #1F328F", -"y@ c #1F338F", -"z@ c #1F298D", -"A@ c #3F328C", -"B@ c #433D8E", -"C@ c #110F83", -"D@ c #141183", -"E@ c #32459F", -"F@ c #42519F", -"G@ c #38379A", -"H@ c #403DAE", -"I@ c #3230A0", -"J@ c #37388D", -"K@ c #3A619E", -"L@ c #406AA1", -"M@ c #2B4093", -"N@ c #1B2189", -"O@ c #171886", -"P@ c #171986", -"Q@ c #171A86", -"R@ c #161385", -"S@ c #34288A", -"T@ c #5B5292", -"U@ c #4D4690", -"V@ c #171484", -"W@ c #2A2889", -"X@ c #588DAB", -"Y@ c #6CB2B7", -"Z@ c #66ACB5", -"`@ c #68AEB6", -" # c #67ADB4", -".# c #6AB0B6", -"+# c #69AFB6", -"@# c #6AB2B7", -"## c #69AEB6", -"$# c #69B0B7", -"%# c #699BAF", -"&# c #025F8E", -"*# c #010180", -"=# c #02017F", -"-# c #2C45A0", -";# c #2C489F", -"># c #3F47A0", -",# c #3B3EB1", -"'# c #3136A9", -")# c #2F398E", -"!# c #31619F", -"~# c #386DA3", -"{# c #1E3892", -"]# c #13228B", -"^# c #0D1787", -"/# c #0E1987", -"(# c #0E1286", -"_# c #2E2489", -":# c #252288", -"<# c #181584", -"[# c #0E0D83", -"}# c #0A0881", -"|# c #192897", -"1# c #303997", -"2# c #120D8F", -"3# c #241BA6", -"4# c #130B94", -"5# c #1B1684", -"6# c #1D3F95", -"7# c #244B99", -"8# c #0E1F8A", -"9# c #715F96", -"0# c #423C8D", -"a# c #201E87", -"b# c #201C86", -"c# c #3C388D", -"d# c #83C6BC", -"e# c #9EFACD", -"f# c #9CF7CC", -"g# c #9CF6CB", -"h# c #9CF6CC", -"i# c #9DF7CC", -"j# c #9DF9CC", -"k# c #9CDDC3", -"l# c #03608F", -"m# c #000181", -"n# c #182595", -"o# c #121C91", -"p# c #192596", -"q# c #17188A", -"r# c #1B1299", -"s# c #160D99", -"t# c #120995", -"u# c #160C99", -"v# c #0B0A85", -"w# c #1F318E", -"x# c #0F238C", -"y# c #000381", -"z# c #00007B", -"A# c #281E87", -"B# c #262288", -"C# c #060581", -"D# c #0B0982", -"E# c #121386", -"F# c #3C5DAB", -"G# c #3B5EAA", -"H# c #4169B1", -"I# c #5064A3", -"J# c #4145B7", -"K# c #3B43B2", -"L# c #2F38A6", -"M# c #3E44B0", -"N# c #3A4B9A", -"O# c #34619E", -"P# c #386CA3", -"Q# c #3769A2", -"R# c #1C3490", -"S# c #111D89", -"T# c #121F89", -"U# c #121888", -"V# c #058D8F", -"W# c #685895", -"X# c #4E4790", -"Y# c #635A94", -"Z# c #181684", -"`# c #231F87", -" $ c #5784A6", -".$ c #67A8B2", -"+$ c #64A4B1", -"@$ c #61A5B3", -"#$ c #64A3B3", -"$$ c #62A7B2", -"%$ c #64A9B3", -"&$ c #68A7AF", -"*$ c #66A7B2", -"=$ c #63A5B3", -"-$ c #64A4B2", -";$ c #64A4B3", -">$ c #66A9B4", -",$ c #67ABB5", -"'$ c #67ACB5", -")$ c #6897AE", -"!$ c #000081", -"~$ c #4A1469", -"{$ c #5A1864", -"]$ c #44176E", -"^$ c #21177F", -"/$ c #351377", -"($ c #44156F", -"_$ c #29177B", -":$ c #501969", -"<$ c #411A71", -"[$ c #1C1682", -"}$ c #141786", -"|$ c #151686", -"1$ c #151786", -"2$ c #141085", -"3$ c #281D87", -"4$ c #463F8F", -"5$ c #2B2789", -"6$ c #0D0C83", -"7$ c #010381", -"8$ c #63175E", -"9$ c #743267", -"0$ c #593676", -"a$ c #363688", -"b$ c #4D367D", -"c$ c #603673", -"d$ c #433480", -"e$ c #6A1E60", -"f$ c #64175F", -"g$ c #32398C", -"h$ c #253690", -"i$ c #263690", -"j$ c #27368F", -"k$ c #253790", -"l$ c #252D8D", -"m$ c #038D8F", -"n$ c #392D8B", -"o$ c #504991", -"p$ c #141384", -"q$ c #10087E", -"r$ c #573E7F", -"s$ c #5B7EA6", -"t$ c #5489AE", -"u$ c #5B88AA", -"v$ c #5D87AA", -"w$ c #5288AF", -"x$ c #6183A6", -"y$ c #6D5181", -"z$ c #7A4071", -"A$ c #5C8EAE", -"B$ c #6188A8", -"C$ c #6288A7", -"D$ c #6088A8", -"E$ c #5E8AAA", -"F$ c #5E78A3", -"G$ c #048285", -"H$ c #030080", -"I$ c #000182", -"J$ c #5B0D5B", -"K$ c #761C57", -"L$ c #4E1F6C", -"M$ c #211F83", -"N$ c #411E73", -"O$ c #5D1F65", -"P$ c #331D79", -"Q$ c #5E115C", -"R$ c #560D5E", -"S$ c #232083", -"T$ c #131E8A", -"U$ c #151E89", -"V$ c #141F89", -"W$ c #141887", -"X$ c #015688", -"Y$ c #048D8F", -"Z$ c #30258A", -"`$ c #504890", -" % c #020381", -".% c #4F1669", -"+% c #56236F", -"@% c #4A2475", -"#% c #2F2482", -"$% c #3B247C", -"%% c #422479", -"&% c #332480", -"*% c #581D69", -"=% c #4B1B6E", -"-% c #252588", -";% c #20248A", -">% c #21248A", -",% c #212489", -"'% c #21258A", -")% c #1F1D88", -"!% c #015E8F", -"~% c #36288A", -"{% c #49418F", -"]% c #2C2689", -"^% c #171284", -"/% c #14077D", -"(% c #854B71", -"_% c #8BA4A7", -":% c #7AB5B6", -"<% c #78B4B7", -"[% c #81B1B4", -"}% c #83ACAF", -"|% c #A26473", -"1% c #B04C5F", -"2% c #78BCBD", -"3% c #7BB3B6", -"4% c #7DB2B5", -"5% c #7AB4B7", -"6% c #77B6B8", -"7% c #789FB0", -"8% c #025F8F", -"9% c #028D8F", -"0% c #012589", -"a% c #012989", -"b% c #012787", -"c% c #00298A", -"d% c #002889", -"e% c #002989", -"f% c #032A89", -"g% c #032D8A", -"h% c #032D8B", -"i% c #042B89", -"j% c #042B88", -"k% c #032E8B", -"l% c #032A8A", -"m% c #006B90", -". + + @ # $ $ $ % % % % % $ % $ $ $ $ $ # @ + & * ", -"+ = - - - - - ; > , ' ) ! ~ { ] = - - - - - - = ^ ", -"+ / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 9 9 9 9 9 0 a ", -"b c d e f g h g i j k l m n o p q r s t u v w x y ", -"z A B C D E B F G H I J K L M N O P Q R S T U V W ", -"X Y Z ` ...g +.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].", -"^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.W ", -"% f.D E g.B h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.].", -"X z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.", -"X.Y.Z.`. +.+++@+#+$+%+&+*+=+-+;+>+,+'+)+!+~+{+]+^+", -"$ - /+/+/+/+/+(+_+:+_+<+[+}+|+1+2+3+4+5+6+7+8+9+0+", -"X a+b+D c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+", -"x+y+z+A+B+C+D+E+F+G+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+", -"$ V+W+= = W+W+= X+Y+Z+`+ @.@+@@@#@$@$@$@$@$@%@&@].", -"X *@=@-@;@>@,@'@)@!@~@{@]@^@/@(@_@:@:@:@:@:@:@<@].", -"X.[@}@|@1@Z 2@3@4@5@6@7@8@9@0@a@b@c@d@d@d@d@e@f@g@", -"% h@/+i@j@k@C l@m@n@o@p@q@r@s@t@u@v@w@x@x@x@y@z@].", -"X.A@B@:.h.= C@D@E@F@G@H@I@J@K@L@M@N@O@P@P@P@Q@R@].", -"X S@T@U@c+- V@W@X@Y@Z@`@ #`@.#+#@#+#########$#%#&#", -"$ - < < /+- *#=#-#;#>#,#'#)#!#~#{#]#^#/#/#/#/#(#].", -"X _#:#<#- - [#}#|#1#2#3#4#5#6#7#8#- W+W+W+W+W+V+W.", -"x+9#0#a#- - b#c#d#e#f#g#g#h#g#g#g#i#i#i#g#g#j#k#l#", -"$ = - - /+/+- m#n#o#p#q#r#s#t#u#v#w#x#8#y#z#V+V+W.", -"X A#B#B#C#- D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#].", -"V#W#X#Y#Z#= `#3@ $.$+$@$#$$$%$&$*$=$-$;$>$,$'$)$&#", -"$ V+W+W+- /+- !$~${$]$^$/$($_$:$<$[$}$|$|$1$1$2$].", -"X 3$4$5$6$- /+7$8$9$0$a$b$c$d$e$f$g$h$i$j$i$k$l$].", -"m$n$o$=@p$- /+q$r$s$t$u$v$w$x$y$z$A$B$B$C$D$E$F$g@", -"G$H$- /+*#- /+I$J$K$L$M$N$O$P$Q$R$S$T$U$U$U$V$W$X$", -"Y$Z$`$B+6$- /+ %.%+%@%#%$%%%&%*%=%-%;%>%,%>%'%)%!%", -"Y$~%{%]%^%= - /%(%_%:%<%[%<%}%|%1%2%3%3%4%5%6%7%8%", -"9%0%a%b%c%d%d%e%f%g%h%h%h%h%h%i%j%k%h%h%k%j%g%l%m%"}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/xwin.cc new/xosview-1.24/xwin.cc --- old/xosview-1.23/xwin.cc 2020-07-11 14:10:34.000000000 +0200 +++ new/xosview-1.24/xwin.cc 2022-01-17 15:27:34.000000000 +0100 @@ -145,8 +145,9 @@ const char* fontName = getResource("font"); if ((font_ = XLoadQueryFont(display_, fontName)) == NULL){ - std::cerr <<name_ <<": display " <<DisplayString(display_) - <<" cannot load font " << fontName << std::endl; + std::cerr <<name_ <<": font \"" << fontName + << "\" does not exist; see xlsfonts(1)" + << std::endl; exit(1); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xosview-1.23/xwin.h new/xosview-1.24/xwin.h --- old/xosview-1.23/xwin.h 2020-07-11 14:10:34.000000000 +0200 +++ new/xosview-1.24/xwin.h 2022-01-17 15:27:34.000000000 +0100 @@ -139,8 +139,8 @@ void init( int argc, char *argv[] ); void getGeometry( void ); int getPixmap(Pixmap *); - void setDisplayName (const char* new_display_name) { strncpy - (display_name_, new_display_name, 256); } + void setDisplayName (const char* new_display_name) { + snprintf(display_name_, 256, "%s", new_display_name); } const char* displayName () { return display_name_; } void addEvent( Event *event );