Toshaan Bharvani
2 years ago
commit
acd5dc15b1
14 changed files with 14693 additions and 0 deletions
@ -0,0 +1,92 @@
@@ -0,0 +1,92 @@
|
||||
#!/bin/bash |
||||
|
||||
_SYSCONFDIR=${sysconfdir:-/etc} |
||||
_PREFIX=${prefix:-/usr} |
||||
_DATADIR=${datadir:-${_PREFIX}/share} |
||||
|
||||
ADDIR=${ADDIR:-${install_prefix}${_SYSCONFDIR}/xscreensaver} |
||||
CONFDIR=${CONFDIR:-${install_prefix}${_DATADIR}/xscreensaver/hacks.conf.d} |
||||
ADFILE=${ADFILE:-$ADDIR/XScreenSaver.ad} |
||||
|
||||
fix_hackconf () |
||||
{ |
||||
if [ ! -s $1 ] ; then |
||||
echo "$1 is empty" >&2 |
||||
echo "" |
||||
return 1 |
||||
fi |
||||
|
||||
tmpconf=`mktemp /tmp/hackconf.XXXXXXXX` |
||||
tmpconf_1=`mktemp /tmp/hackconf.XXXXXXXX` |
||||
tmpconf_2=`mktemp /tmp/hackconf.XXXXXXXX` |
||||
tmpconf_3=`mktemp /tmp/hackconf.XXXXXXXX` |
||||
sed -n -e '$p' $1 > $tmpconf_1 |
||||
sed -e '$d' $1 > $tmpconf_2 |
||||
for file in $tmpconf_1 $tmpconf_2 ; do |
||||
if ( [ -s $file ] && grep -q '\\n\(\|\\\)[^\\].*$' $file ) ; then |
||||
rm -f $tmpconf $tmpconf_1 $tmpconf_2 $tmpconf_3 |
||||
echo "" |
||||
echo "ignoring $1" >&2 |
||||
return 1 |
||||
fi |
||||
done |
||||
if ! grep -q '\\n[\\]*$' $tmpconf_1 ; then |
||||
sed -i -e 's|\(^.*$\)|\1 \\n\\|' $tmpconf_1 |
||||
fi |
||||
sed -i -e 's|\\n$|\\n\\|' $tmpconf_1 |
||||
while [ -s $tmpconf_2 ] ; do |
||||
sed -n -e '1p' $tmpconf_2 > $tmpconf_3 |
||||
sed -i -e '1d' $tmpconf_2 |
||||
if ! grep -q '\([ \t]\\$\|\\n\\$\)' $tmpconf_3 ; then |
||||
rm -f $tmpconf $tmpconf_1 $tmpconf_2 $tmpconf_3 |
||||
echo "" |
||||
echo "ignoring $1" >&2 |
||||
return 1 |
||||
fi |
||||
cat $tmpconf_3 >> $tmpconf |
||||
done |
||||
cat $tmpconf_1 >> $tmpconf |
||||
rm -f $tmpconf_1 $tmpconf_2 $tmpconf_3 |
||||
echo $tmpconf |
||||
return 0 |
||||
|
||||
} |
||||
|
||||
for suffix in header tail ; do |
||||
if [ ! -r $ADDIR/XScreenSaver.ad.$suffix ] ; then |
||||
echo "$ADDIR/XScreenSaver.ad.$suffix missing" |
||||
exit 1 |
||||
fi |
||||
done |
||||
|
||||
tmpfile=`mktemp /tmp/XScreenSaver.ad.XXXXXXXX` |
||||
|
||||
cat > $tmpfile <<EOF |
||||
! Don't edit this file directly by yourself!! |
||||
! This file is not meant to be edited directly. |
||||
! |
||||
! Instead, please edit /etc/xscreensaver/XScreenSaver.ad.header, |
||||
! /etc/xscreensaver/XScreenSaver.ad.tail and add files under |
||||
! /usr/share/xscreensaver/hacks.conf.d if you want. |
||||
! |
||||
! Then call /usr/sbin/update-xscreensaver-hacks to |
||||
! update this file. |
||||
! |
||||
EOF |
||||
|
||||
cat $ADDIR/XScreenSaver.ad.header >> $tmpfile |
||||
|
||||
for hackconf in $CONFDIR/*.conf ; do |
||||
hackconf_fixed=`fix_hackconf $hackconf` |
||||
if [ -n "$hackconf_fixed" ] ; then |
||||
cat $hackconf_fixed >> $tmpfile |
||||
rm -f $hackconf_fixed |
||||
fi |
||||
done |
||||
sed -i -e '$s|\\n\\$|\\n|' $tmpfile |
||||
|
||||
cat $ADDIR/XScreenSaver.ad.tail >> $tmpfile |
||||
install -c -p -m 644 $tmpfile $ADFILE |
||||
rm -f $tmpfile |
||||
|
||||
|
@ -0,0 +1,56 @@
@@ -0,0 +1,56 @@
|
||||
From b04424419b281e608bac2a600bf7aab0c65b164a Mon Sep 17 00:00:00 2001 |
||||
From: XScreenSaver owners <xscreensaver-owner@fedoraproject.org> |
||||
Date: Tue, 24 Mar 2020 13:29:14 +0900 |
||||
Subject: [PATCH] # Change webcollage not to access to net # Also see bug |
||||
472061 |
||||
|
||||
--- |
||||
hacks/config/webcollage.xml | 7 ++++++- |
||||
hacks/webcollage.man | 5 +++++ |
||||
2 files changed, 11 insertions(+), 1 deletion(-) |
||||
|
||||
diff --git a/hacks/config/webcollage.xml b/hacks/config/webcollage.xml |
||||
index c26ea98..da312fa 100644 |
||||
--- a/hacks/config/webcollage.xml |
||||
+++ b/hacks/config/webcollage.xml |
||||
@@ -30,8 +30,8 @@ |
||||
<string id="filter" _label="Per-image filter program" arg="-filter %"/> |
||||
<string id="filter2" _label="Overall filter program" arg="-filter2 %"/> |
||||
<file id="dictionary" _label="Dictionary file" arg="-dictionary %"/> |
||||
- <file id="dir" _label="Image directory" arg="-directory %"/> |
||||
--> |
||||
+ <file id="dir" _label="Image directory" arg="-directory %"/> |
||||
|
||||
<xscreensaver-updater /> |
||||
|
||||
@@ -51,6 +51,11 @@ Please act accordingly. |
||||
|
||||
See also https://www.jwz.org/webcollage/ |
||||
|
||||
+NOTE: |
||||
+Webcollage on Fedora does not connect to internet by default |
||||
+and uses image files on your local disk. If you want webcollage to |
||||
+search for image files on net, use webcollage.original . |
||||
+ |
||||
Written by Jamie Zawinski; 1999. |
||||
</_description> |
||||
</screensaver> |
||||
diff --git a/hacks/webcollage.man b/hacks/webcollage.man |
||||
index 82bf5d7..7860d2e 100644 |
||||
--- a/hacks/webcollage.man |
||||
+++ b/hacks/webcollage.man |
||||
@@ -178,6 +178,11 @@ the given directory. |
||||
.TP 8 |
||||
.B \-fps |
||||
Display the current frame rate and CPU load (MacOS only). |
||||
+.SH NOTES FOR FEDORA USER |
||||
+Webcollage on Fedora uses '-directory' option by default, so it |
||||
+.B does not connect to internet |
||||
+and uses image files on your local disk. If you want webcollage to |
||||
+search for image files on net, use webcollage.original . |
||||
.SH ENVIRONMENT |
||||
.PP |
||||
.TP 8 |
||||
-- |
||||
2.25.2 |
||||
|
@ -0,0 +1,96 @@
@@ -0,0 +1,96 @@
|
||||
From 0d26e4514d7d6c90d2c5e35749c0b83121a66b77 Mon Sep 17 00:00:00 2001 |
||||
From: "mtasaka@fedoraproject.org" <mtasaka@fedoraproject.org> |
||||
Date: Tue, 7 Feb 2017 16:40:52 +0900 |
||||
Subject: [PATCH] misc: kill gcc warn_unused_result warnings |
||||
|
||||
Remove misc warnings generated gcc -Wall with |
||||
"warning: ignoring return value of 'foo', |
||||
declared with attribute warn_unused_result". |
||||
|
||||
For setuid() and fgets(), really check the returned value. |
||||
For system(), for now just use empty body to avoid this |
||||
warning. Note that casting the result to (void) does not |
||||
remove these warnings. |
||||
--- |
||||
driver/demo-Gtk.c | 9 +++++++-- |
||||
hacks/glx/sonar-icmp.c | 2 +- |
||||
hacks/glx/sonar.c | 5 +++-- |
||||
hacks/recanim.c | 6 +++++- |
||||
4 files changed, 16 insertions(+), 6 deletions(-) |
||||
|
||||
diff --git a/driver/demo-Gtk.c b/driver/demo-Gtk.c |
||||
index f5c4839..7c34846 100644 |
||||
--- a/driver/demo-Gtk.c |
||||
+++ b/driver/demo-Gtk.c |
||||
@@ -4423,7 +4423,8 @@ kde_screensaver_active_p (void) |
||||
FILE *p = popen ("dcop kdesktop KScreensaverIface isEnabled 2>/dev/null", |
||||
"r"); |
||||
char buf[255]; |
||||
- fgets (buf, sizeof(buf)-1, p); |
||||
+ if (!p) return False; |
||||
+ if (!fgets (buf, sizeof(buf)-1, p)) return False; |
||||
pclose (p); |
||||
if (!strcmp (buf, "true\n")) |
||||
return True; |
||||
@@ -4434,7 +4435,11 @@ kde_screensaver_active_p (void) |
||||
static void |
||||
kill_kde_screensaver (void) |
||||
{ |
||||
- system ("dcop kdesktop KScreensaverIface enable false"); |
||||
+ /* Use empty body to kill warning from gcc -Wall with |
||||
+ "warning: ignoring return value of 'system', |
||||
+ declared with attribute warn_unused_result" |
||||
+ */ |
||||
+ if (system ("dcop kdesktop KScreensaverIface enable false")) {} |
||||
} |
||||
|
||||
|
||||
diff --git a/hacks/glx/sonar-icmp.c b/hacks/glx/sonar-icmp.c |
||||
index 8256270..26eb90d 100644 |
||||
--- a/hacks/glx/sonar-icmp.c |
||||
+++ b/hacks/glx/sonar-icmp.c |
||||
@@ -1634,7 +1634,7 @@ sonar_init_ping (Display *dpy, char **error_ret, char **desc_ret, |
||||
fprintf (stderr, "%s: unable to open icmp socket\n", progname); |
||||
|
||||
/* Disavow privs */ |
||||
- setuid(getuid()); |
||||
+ if (setuid(getuid()) == -1) abort(); |
||||
|
||||
pd->pid = getpid() & 0xFFFF; |
||||
pd->seq = 0; |
||||
diff --git a/hacks/glx/sonar.c b/hacks/glx/sonar.c |
||||
index f3a4d9d..2c6ca5b 100644 |
||||
--- a/hacks/glx/sonar.c |
||||
+++ b/hacks/glx/sonar.c |
||||
@@ -930,8 +930,9 @@ init_sensor (ModeInfo *mi) |
||||
sp->ssd = sonar_init_ping (MI_DISPLAY (mi), &sp->error, &sp->desc, |
||||
ping_arg, ping_timeout, resolve_p, times_p, |
||||
debug_p); |
||||
- else |
||||
- setuid(getuid()); /* Disavow privs if not pinging. */ |
||||
+ else { |
||||
+ if (setuid(getuid()) == -1) abort(); /* Disavow privs if not pinging. */ |
||||
+ } |
||||
|
||||
sp->start_time = double_time (); /* for error message timing */ |
||||
|
||||
diff --git a/hacks/recanim.c b/hacks/recanim.c |
||||
index 51379ed..a526c25 100644 |
||||
--- a/hacks/recanim.c |
||||
+++ b/hacks/recanim.c |
||||
@@ -324,7 +324,11 @@ screenhack_record_anim_free (record_anim_state *st) |
||||
" 2>&-", |
||||
fn); |
||||
fprintf (stderr, "%s: exec: %s\n", progname, cmd); |
||||
- system (cmd); |
||||
+ /* Use empty body to kill warning from gcc -Wall with |
||||
+ "warning: ignoring return value of 'system', |
||||
+ declared with attribute warn_unused_result" |
||||
+ */ |
||||
+ if (system (cmd)) {} |
||||
|
||||
if (stat (fn, &s)) |
||||
{ |
||||
-- |
||||
2.9.3 |
||||
|
@ -0,0 +1,126 @@
@@ -0,0 +1,126 @@
|
||||
From d8ba605b7779ce5d2fc893c44fc2986ecf176e47 Mon Sep 17 00:00:00 2001 |
||||
From: XScreenSaver owners <xscreensaver-owner@fedoraproject.org> |
||||
Date: Wed, 9 Dec 2020 22:12:09 +0900 |
||||
Subject: [PATCH] barcode / glsnake: sanitize the names of modes |
||||
|
||||
--- |
||||
hacks/barcode.c | 10 ---------- |
||||
hacks/glx/glsnake.c | 12 ++++++------ |
||||
2 files changed, 6 insertions(+), 16 deletions(-) |
||||
|
||||
diff --git a/hacks/barcode.c b/hacks/barcode.c |
||||
index 20c2f38..ba3e2b2 100644 |
||||
--- a/hacks/barcode.c |
||||
+++ b/hacks/barcode.c |
||||
@@ -122,8 +122,6 @@ static const char *words[] = |
||||
"bird flu", |
||||
"bliss", |
||||
"bogosity", |
||||
- "boobies", |
||||
- "boobs", |
||||
"booty", |
||||
"bread", |
||||
"brogrammers", |
||||
@@ -139,7 +137,6 @@ static const char *words[] = |
||||
"chocolate", |
||||
"chupacabra", |
||||
"CLONE", |
||||
- "cock", |
||||
"congress", |
||||
"constriction", |
||||
"contrition", |
||||
@@ -184,7 +181,6 @@ static const char *words[] = |
||||
"fear", |
||||
"fever", |
||||
"filth", |
||||
- "flatulence", |
||||
"fluff", |
||||
"fnord", |
||||
"followers", |
||||
@@ -202,9 +198,7 @@ static const char *words[] = |
||||
"happiness", |
||||
"hate", |
||||
"helplessness", |
||||
- "hemorrhoid", |
||||
"hermaphrodite", |
||||
- "heroin", |
||||
"heroine", |
||||
"hope", |
||||
"hysteria", |
||||
@@ -286,7 +280,6 @@ static const char *words[] = |
||||
"punishment", |
||||
"punk rock", |
||||
"punk", |
||||
- "pussy", |
||||
"quagmire", |
||||
"quarantine", |
||||
"quartz", |
||||
@@ -295,7 +288,6 @@ static const char *words[] = |
||||
"rage", |
||||
"readout", |
||||
"reality", |
||||
- "rectum", |
||||
"reject", |
||||
"rejection", |
||||
"respect", |
||||
@@ -365,8 +357,6 @@ static const char *words[] = |
||||
"venom", |
||||
"verifiability", |
||||
"very fine people", |
||||
- "viagra", |
||||
- "vibrator", |
||||
"victim", |
||||
"vignette", |
||||
"villainy", |
||||
diff --git a/hacks/glx/glsnake.c b/hacks/glx/glsnake.c |
||||
index 8efc681..125df90 100644 |
||||
--- a/hacks/glx/glsnake.c |
||||
+++ b/hacks/glx/glsnake.c |
||||
@@ -539,7 +539,7 @@ static const struct model_s model[] = { |
||||
PIN, ZERO, RIGHT, RIGHT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO, |
||||
RIGHT, ZERO } |
||||
}, |
||||
- { "k's turd", |
||||
+ { "caterpillar", |
||||
{ RIGHT, RIGHT, PIN, RIGHT, LEFT, RIGHT, PIN, RIGHT, LEFT, |
||||
RIGHT, PIN, RIGHT, LEFT, RIGHT, PIN, RIGHT, LEFT, RIGHT, PIN, |
||||
RIGHT, LEFT, RIGHT, PIN, ZERO } |
||||
@@ -564,22 +564,22 @@ static const struct model_s model[] = { |
||||
ZERO, PIN, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, |
||||
ZERO, ZERO, ZERO } |
||||
}, |
||||
- { "kissy box", |
||||
+ { "ribbon", |
||||
{ PIN, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, |
||||
ZERO, PIN, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, |
||||
ZERO, PIN, ZERO } |
||||
}, |
||||
- { "erect penis", /* thanks benno */ |
||||
+ { "shuffle board", /* thanks benno */ |
||||
{ PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, PIN, |
||||
PIN, ZERO, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, |
||||
ZERO, ZERO } |
||||
}, |
||||
- { "flaccid penis", |
||||
+ { "anchor", |
||||
{ PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, PIN, |
||||
PIN, ZERO, ZERO, ZERO, RIGHT, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, |
||||
ZERO, ZERO } |
||||
}, |
||||
- { "vagina", |
||||
+ { "engagement ring", |
||||
{ RIGHT, ZERO, ZERO, ZERO, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO, |
||||
LEFT, ZERO, ZERO, ZERO, LEFT, ZERO, LEFT, PIN, LEFT, PIN, RIGHT, |
||||
PIN, RIGHT, ZERO } |
||||
@@ -999,7 +999,7 @@ static const struct model_s model[] = { |
||||
{ "Parrot", |
||||
{ ZERO, ZERO, ZERO, ZERO, RIGHT, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, RIGHT, ZERO, RIGHT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, LEFT, ZERO, PIN, ZERO } |
||||
}, |
||||
- { "Penis", |
||||
+ { "Shuttle", |
||||
{ PIN, PIN, RIGHT, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, LEFT, PIN, PIN, ZERO } |
||||
}, |
||||
{ "PictureComingSoon", |
||||
-- |
||||
2.29.2 |
||||
|
@ -0,0 +1,48 @@
@@ -0,0 +1,48 @@
|
||||
From ef72c9500015a36bf0b4b412337ec2d890d092b6 Mon Sep 17 00:00:00 2001 |
||||
From: Mamoru TASAKA <mtasaka@fedoraproject.org> |
||||
Date: Fri, 2 Apr 2021 18:46:14 +0900 |
||||
Subject: [PATCH] screensaver_id: search parenthesis first for searching year |
||||
|
||||
Fedora package modifies screensaver_id string to %%version-%%release . |
||||
Adjust window_init function so that "year" information is |
||||
parsed correctly. |
||||
--- |
||||
driver/dialog.c | 4 +++- |
||||
driver/xscreensaver-systemd.c | 4 +++- |
||||
3 files changed, 9 insertions(+), 3 deletions(-) |
||||
|
||||
diff --git a/driver/dialog.c b/driver/dialog.c |
||||
index fce74c4..9a8173f 100644 |
||||
--- a/driver/dialog.c |
||||
+++ b/driver/dialog.c |
||||
@@ -949,8 +949,10 @@ window_init (Widget root_widget, Bool splash_p) |
||||
/* Put the version number in the label. */ |
||||
{ |
||||
char *version = strdup (screensaver_id + 17); |
||||
- char *year = strchr (version, '-'); |
||||
+ char *year; |
||||
char *s = strchr (version, ' '); |
||||
+ year = strchr (version, '('); /* Search parenthesis first */ |
||||
+ year = strchr (year, '-'); |
||||
*s = 0; |
||||
year = strchr (year+1, '-') + 1; |
||||
s = strchr (year, ')'); |
||||
diff --git a/driver/xscreensaver-systemd.c b/driver/xscreensaver-systemd.c |
||||
index d06174a..c9a66a1 100644 |
||||
--- a/driver/xscreensaver-systemd.c |
||||
+++ b/driver/xscreensaver-systemd.c |
||||
@@ -950,8 +950,10 @@ main (int argc, char **argv) |
||||
{ |
||||
int i; |
||||
char *version = strdup (screensaver_id + 17); |
||||
- char *year = strchr (version, '-'); |
||||
+ char *year; |
||||
char *s = strchr (version, ' '); |
||||
+ year = strchr (version, '('); /* Search parenthesis first */ |
||||
+ year = strchr (year, '-'); |
||||
*s = 0; |
||||
year = strchr (year+1, '-') + 1; |
||||
s = strchr (year, ')'); |
||||
-- |
||||
2.31.1 |
||||
|
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
From 13e1203d8cc00a8462dbd2656257b46b411b2854 Mon Sep 17 00:00:00 2001 |
||||
From: Mamoru TASAKA <mtasaka@fedoraproject.org> |
||||
Date: Mon, 3 May 2021 15:00:31 +0900 |
||||
Subject: [PATCH] dialog.c: window_init: show more version string |
||||
|
||||
Fedora modifies version string to "6.00-1.fc34" to show rpm "release", for example. |
||||
Let's allow more length for version string for password dialog. |
||||
--- |
||||
driver/dialog.c | 2 +- |
||||
1 file changed, 1 insertion(+), 1 deletion(-) |
||||
|
||||
diff --git a/driver/dialog.c b/driver/dialog.c |
||||
index 9a8173f..3020880 100644 |
||||
--- a/driver/dialog.c |
||||
+++ b/driver/dialog.c |
||||
@@ -959,7 +959,7 @@ window_init (Widget root_widget, Bool splash_p) |
||||
*s = 0; |
||||
ws->heading_label = (char *) malloc (100); |
||||
ws->version = strdup(version); |
||||
- sprintf (ws->heading_label, "XScreenSaver %.4s, v%.10s", year, version); |
||||
+ sprintf (ws->heading_label, "XScreenSaver %.4s, v%.14s", year, version); |
||||
|
||||
if (splash_p) |
||||
{ |
||||
-- |
||||
2.31.1 |
||||
|
@ -0,0 +1,55 @@
@@ -0,0 +1,55 @@
|
||||
From 6c6c990727caa881b7b3f045dfaa0a167d347507 Mon Sep 17 00:00:00 2001 |
||||
From: Mamoru TASAKA <mtasaka@fedoraproject.org> |
||||
Date: Tue, 4 May 2021 09:58:54 +0900 |
||||
Subject: [PATCH] blurb: show 1/100 sec on linux |
||||
|
||||
--- |
||||
driver/blurb.c | 24 +++++++++++++++++++++++- |
||||
1 file changed, 23 insertions(+), 1 deletion(-) |
||||
|
||||
diff --git a/driver/blurb.c b/driver/blurb.c |
||||
index d732a9b..010923b 100644 |
||||
--- a/driver/blurb.c |
||||
+++ b/driver/blurb.c |
||||
@@ -28,8 +28,23 @@ blurb (void) |
||||
struct tm tm; |
||||
time_t now; |
||||
int i; |
||||
+#ifdef __linux__ |
||||
+ struct timespec tp; |
||||
+ unsigned int sec_per_100 = 0; |
||||
+#endif |
||||
+ |
||||
+#ifdef __linux__ |
||||
+ if ( (clock_gettime(CLOCK_REALTIME_COARSE, &tp)) == 0 ) |
||||
+ { |
||||
+ now = tp.tv_sec; |
||||
+ sec_per_100 = tp.tv_nsec / 10000000; /* 10^9 / 10^7 */ |
||||
+ } |
||||
+ else |
||||
+#endif |
||||
+ { |
||||
+ now = time ((time_t *) 0); |
||||
+ } |
||||
|
||||
- now = time ((time_t *) 0); |
||||
localtime_r (&now, &tm); |
||||
i = strlen (progname); |
||||
if (i > 40) i = 40; |
||||
@@ -44,6 +59,13 @@ blurb (void) |
||||
buf[i++] = ':'; |
||||
buf[i++] = '0' + (tm.tm_sec >= 10 ? tm.tm_sec/10 : 0); |
||||
buf[i++] = '0' + (tm.tm_sec % 10); |
||||
+ |
||||
+#ifdef __linux__ |
||||
+ buf[i++] = '.'; |
||||
+ buf[i++] = '0' + (sec_per_100 >= 10 ? sec_per_100/10 : 0); |
||||
+ buf[i++] = '0' + (sec_per_100 % 10); |
||||
+#endif |
||||
+ |
||||
buf[i] = 0; |
||||
return buf; |
||||
} |
||||
-- |
||||
2.31.1 |
||||
|
@ -0,0 +1,84 @@
@@ -0,0 +1,84 @@
|
||||
From 9086681b0775ad92ce39df96d22ff5a3fe06c68f Mon Sep 17 00:00:00 2001 |
||||
From: Mamoru TASAKA <mtasaka@fedoraproject.org> |
||||
Date: Fri, 4 Mar 2022 11:24:49 +0900 |
||||
Subject: [PATCH] print_xinput_event: check if XIRawEvent.raw_values is |
||||
available |
||||
|
||||
gcc12 -sanitize=address shows that XIRawEvent.raw_values is not always |
||||
available. |
||||
XIRawEvent buffer is allocated on wireToRawEvent() in XExtInt.c in libXi. |
||||
Follow wireToRawEvent() implementation to check is XIRawEvent.raw_values |
||||
is available, using XIRawEvent.valuators.mask_len, valuators.mask and |
||||
XIMaskIsSet. |
||||
--- |
||||
driver/xinput.c | 38 ++++++++++++++++++++++++++++++++------ |
||||
1 file changed, 32 insertions(+), 6 deletions(-) |
||||
|
||||
diff --git a/driver/xinput.c b/driver/xinput.c |
||||
index 9402a4f..2ce2ce1 100644 |
||||
--- a/driver/xinput.c |
||||
+++ b/driver/xinput.c |
||||
@@ -296,6 +296,30 @@ print_kbd_event (XEvent *xev, XComposeStatus *compose, Bool x11_p) |
||||
} |
||||
} |
||||
|
||||
+/* see wireToRawEvent, count_bits in libXi and XIMaskIsSet in X11/extensions/XI2.h */ |
||||
+static void |
||||
+print_xi_raw_event_raw_values (XIRawEvent *re) |
||||
+{ |
||||
+ int mask_pos; |
||||
+ double *raw_values_pos = re->raw_values; |
||||
+ int first_time_p; |
||||
+ |
||||
+ first_time_p = 1; |
||||
+ |
||||
+ for (mask_pos = 0; mask_pos < re->valuators.mask_len * sizeof(char); mask_pos++) |
||||
+ { |
||||
+ if (XIMaskIsSet(re->valuators.mask, mask_pos)) |
||||
+ { |
||||
+ if (first_time_p) |
||||
+ { |
||||
+ first_time_p = 0; |
||||
+ fprintf(stderr, " %7.02f", *raw_values_pos++); |
||||
+ } else { |
||||
+ fprintf(stderr, ", %-7.02f", *raw_values_pos++); |
||||
+ } |
||||
+ } |
||||
+ } |
||||
+} |
||||
|
||||
void |
||||
print_xinput_event (Display *dpy, XEvent *xev, const char *desc) |
||||
@@ -371,11 +395,12 @@ print_xinput_event (Display *dpy, XEvent *xev, const char *desc) |
||||
XQueryPointer (dpy, DefaultRootWindow (dpy), |
||||
&root_ret, &child_ret, &root_x, &root_y, |
||||
&win_x, &win_y, &mask); |
||||
- fprintf (stderr, "%s: XI _RawButton%s %4d, %-4d %7.02f, %-7.02f\n", |
||||
+ fprintf (stderr, "%s: XI _RawButton%s %4d, %-4d", |
||||
blurb(), |
||||
(re->evtype == XI_RawButtonPress ? "Press " : "Release"), |
||||
- root_x, root_y, |
||||
- re->raw_values[0], re->raw_values[1]); |
||||
+ root_x, root_y); |
||||
+ print_xi_raw_event_raw_values(re); |
||||
+ fprintf(stderr, "\n"); |
||||
} |
||||
break; |
||||
|
||||
@@ -390,9 +415,10 @@ print_xinput_event (Display *dpy, XEvent *xev, const char *desc) |
||||
&root_ret, &child_ret, &root_x, &root_y, |
||||
&win_x, &win_y, &mask); |
||||
fprintf (stderr, |
||||
- "%s: XI_RawMotion %4d, %-4d %7.02f, %-7.02f%s\n", |
||||
- blurb(), root_x, root_y, re->raw_values[0], re->raw_values[1], |
||||
- (desc ? desc : "")); |
||||
+ "%s: XI_RawMotion %4d, %-4d ", |
||||
+ blurb(), root_x, root_y); |
||||
+ print_xi_raw_event_raw_values(re); |
||||
+ fprintf (stderr, "%s\n", (desc ? desc : "")); |
||||
} |
||||
break; |
||||
|
||||
-- |
||||
2.35.1 |
||||
|
@ -0,0 +1,10 @@
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh |
||||
|
||||
# Don't launch xscreensaver if gnome-screensaver |
||||
# is installed |
||||
|
||||
if [ -x /usr/bin/gnome-screensaver ] ; then exit 0 ; fi |
||||
if [ -x /usr/bin/mate-screensaver ] ; then exit 0 ; fi |
||||
if [ -x /usr/bin/xfce4-screensaver ] ; then exit 0 ; fi |
||||
|
||||
exec xscreensaver -nosplash |
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
[Desktop Entry] |
||||
Type=Application |
||||
Name=xscreensaver-autostart |
||||
Comment=Autostart xscreensaver |
||||
Exec=/usr/libexec/xscreensaver-autostart |
||||
Terminal=false |
@ -0,0 +1,28 @@
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/bash |
||||
|
||||
is_process_running_p() |
||||
{ |
||||
pidid=$(pidof "$1" | sed -e 's|[ \t].*||') |
||||
if [ "x${pidid}" == "x" ] ; then |
||||
return 1 |
||||
else |
||||
return 0 |
||||
fi |
||||
} |
||||
|
||||
check_manager_and_exec() { |
||||
is_process_running_p "$1" || return |
||||
exec $2 |
||||
} |
||||
|
||||
check_manager_and_exec "lxdm-binary" "lxdm -c USER_SWITCH" # LXDE |
||||
check_manager_and_exec "lightdm" "dm-tool switch-to-greeter" # XFCE and etc |
||||
check_manager_and_exec "gdm" "gdmflexiserver -ls" # GNOME |
||||
# KDE-like |
||||
check_manager_and_exec "sddm" \ |
||||
"qdbus --system org.freedesktop.DisplayManager /org/freedesktop/DisplayManager/Seat0 org.freedesktop.DisplayManager.Seat.SwitchToGreeter" |
||||
|
||||
|
||||
# No registered login manager found |
||||
exit 1 |
||||
|
Loading…
Reference in new issue