Hello community, here is the log from the commit of package scrot for openSUSE:Factory checked in at 2020-07-24 12:29:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/scrot (Old) and /work/SRC/openSUSE:Factory/.scrot.new.3592 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "scrot" Fri Jul 24 12:29:35 2020 rev:4 rq:822601 version:1.4 Changes: -------- --- /work/SRC/openSUSE:Factory/scrot/scrot.changes 2020-05-13 22:56:47.863092765 +0200 +++ /work/SRC/openSUSE:Factory/.scrot.new.3592/scrot.changes 2020-07-24 12:29:38.190699759 +0200 @@ -1,0 +2,17 @@ +Fri Jul 24 08:53:30 UTC 2020 - Paolo Stivanin <i...@paolostivanin.com> + +- Update to 1.4: + * Added a new logo 128x128. + * New Feature: capture stack/overlapping windows. + Depends of libXcomposite (X11). New option: --stack or -k. + * Call XCloseDisplay on exit. This is the right thing in every + X server program, to release acquired resources. + * Fixed autoselect. + * Fixed capturing partially hidden windows on the edge of the desktop. + * Fixed required number. + * Fixed SIGSEGV, if running without DISPLAY environment variable. + * Fixed SIGSEGV, option --note. + * Minor fix: variable is assigned that is never used. + * Stack windows: client list spec EWMH. + +------------------------------------------------------------------- Old: ---- scrot-1.3.tar.gz New: ---- scrot-1.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ scrot.spec ++++++ --- /var/tmp/diff_new_pack.Npbqpc/_old 2020-07-24 12:29:39.254700847 +0200 +++ /var/tmp/diff_new_pack.Npbqpc/_new 2020-07-24 12:29:39.258700852 +0200 @@ -17,7 +17,7 @@ Name: scrot -Version: 1.3 +Version: 1.4 Release: 0 Summary: Screenshot Capture Utility License: SUSE-Scrot @@ -27,6 +27,7 @@ BuildRequires: autoconf BuildRequires: autoconf-archive BuildRequires: automake +BuildRequires: libXcomposite-devel BuildRequires: update-desktop-files BuildRequires: pkgconfig(giblib) BuildRequires: pkgconfig(imlib2) ++++++ scrot-1.3.tar.gz -> scrot-1.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scrot-1.3/.github/workflows/full-check.yml new/scrot-1.4/.github/workflows/full-check.yml --- old/scrot-1.3/.github/workflows/full-check.yml 2020-04-16 06:36:50.000000000 +0200 +++ new/scrot-1.4/.github/workflows/full-check.yml 2020-07-19 05:11:08.000000000 +0200 @@ -1,3 +1,7 @@ +# Copyright 2020 Jeroen Roovers <j...@gentoo.org> +# Copyright 2020 Joao Eriberto Mota Filho <eribe...@eriberto.pro.br> +# Copyright 2020 spycapitan <spycapi...@protonmail.com> + name: full-check on: [push, pull_request] @@ -10,7 +14,7 @@ steps: - uses: actions/checkout@v2 - name: install_dependencies - run: sudo apt install autoconf-archive giblib-dev libimlib2-dev libtool libxcursor-dev libxfixes-dev + run: sudo apt install autoconf-archive giblib-dev libimlib2-dev libtool libxcomposite-dev libxfixes-dev - name: first_build run: | ./autogen.sh @@ -28,4 +32,3 @@ - name: run_program run: | scrot -v - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scrot-1.3/ChangeLog new/scrot-1.4/ChangeLog --- old/scrot-1.3/ChangeLog 2020-04-16 06:36:50.000000000 +0200 +++ new/scrot-1.4/ChangeLog 2020-07-19 05:11:08.000000000 +0200 @@ -1,3 +1,37 @@ +Sat Jul 18 23:23:00 -03:00 2020 Joao Eriberto Mota Filho <eribe...@eriberto.pro.br> +Version 1.4 + + [ ideal ] + + * Fix SIGSEGV, if running without DISPLAY environment variable. + + [ Jeroen Roovers ] + + * README.md: mention libXcomposite in build requirements. + * Removed libXcursor references. + + [ Joao Eriberto Mota Filho ] + + * Added a new logo 128x128. + * Added rights for "ideal", Jeroen Roovers and spycapitan. + * Fixed spelling errors in manpage. + * Prepare for new release. + * Updated manpage. + * Using create-man.sh 2.0 from txt2man package from Debian. + + [ spycapitan ] + + * Call XCloseDisplay on exit. This is the right thing in every X server + program, to release acquired resources. + * Fixed autoselect. + * Fixed capturing partially hidden windows on the edge of the desktop. + * Fixed required number. + * Fixed SIGSEGV, option --note. + * Minor fix: variable is assigned that is never used. + * New Feature: capture stack/overlapping windows. Depends of libXcomposite + (X11). New option: --stack or -k. + * Stack windows: client list spec EWMH. + Sun Apr 16 00:08:00 -03:00 2020 Joao Eriberto Mota Filho <eribe...@eriberto.pro.br> Version 1.3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scrot-1.3/README.md new/scrot-1.4/README.md --- old/scrot-1.3/README.md 2020-04-16 06:36:50.000000000 +0200 +++ new/scrot-1.4/README.md 2020-07-19 05:11:08.000000000 +0200 @@ -42,7 +42,7 @@ - giblib - imlib2 - libtool - - libxcursor + - libxcomposite - libxfixes To build and install, run the following commands: @@ -60,5 +60,5 @@ scrot was originally developed by Tom Gilbert under MIT-advertising license. -Currently, source code and newer versions are available at -https://github.com/resurrecting-open-source-projects/scrot +Currently, source code is maintained by volunteers. Newer versions are +available at https://github.com/resurrecting-open-source-projects/scrot diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scrot-1.3/configure.ac new/scrot-1.4/configure.ac --- old/scrot-1.3/configure.ac 2020-04-16 06:36:50.000000000 +0200 +++ new/scrot-1.4/configure.ac 2020-07-19 05:11:08.000000000 +0200 @@ -1,6 +1,6 @@ dnl Process this file with autoconf to create configure. -AC_INIT([scrot], [1.3], [https://github.com/resurrecting-open-source-projects/scrot/issues]) +AC_INIT([scrot], [1.4], [https://github.com/resurrecting-open-source-projects/scrot/issues]) AC_CONFIG_SRCDIR([src/main.c]) AM_INIT_AUTOMAKE AC_CONFIG_HEADER([src/config.h]) Binary files old/scrot-1.3/doc/scrot-128x128.png and new/scrot-1.4/doc/scrot-128x128.png differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scrot-1.3/man/create-man.sh new/scrot-1.4/man/create-man.sh --- old/scrot-1.3/man/create-man.sh 2020-04-16 06:36:50.000000000 +0200 +++ new/scrot-1.4/man/create-man.sh 2020-07-19 05:11:08.000000000 +0200 @@ -1,18 +1,24 @@ #!/bin/bash -# Copyright 2015-2019 Joao Eriberto Mota Filho <eribe...@eriberto.pro.br> -# Create a manpage using txt2man command. -# +# Copyright 2015-2020 Joao Eriberto Mota Filho <eribe...@eriberto.pro.br> +# Create a manpage using txt2man command. Version 2.0, 2020-06-19. +# This file is part of txt2man package for Debian. # This script can be used under BSD-3-Clause license. +#-------------------------------------------------------- +# Don't change the following lines TEST=$(txt2man -h 2> /dev/null) [ "$TEST" ] || { echo -e "\nYou need to install txt2man, from https://github.com/mvertes/txt2man.\n"; exit 1; } -T2M_DATE="16 April 2020" +function create-man { +txt2man -d "$T2M_DATE" -t $T2M_NAME -r $T2M_NAME-$T2M_VERSION -s $T2M_LEVEL -v "$T2M_DESC" $T2M_NAME.txt > $T2M_NAME.$T2M_LEVEL +} +#-------------------------------------------------------- + +# Put here all data for your first manpage (in T2M lines) +T2M_DATE="18 July 2020" T2M_NAME=scrot -T2M_VERSION=1.3 +T2M_VERSION=1.4 T2M_LEVEL=1 T2M_DESC="command line screen capture utility" - -# Don't change the following line -txt2man -d "$T2M_DATE" -t $T2M_NAME -r $T2M_NAME-$T2M_VERSION -s $T2M_LEVEL -v "$T2M_DESC" $T2M_NAME.txt > $T2M_NAME.$T2M_LEVEL +create-man diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scrot-1.3/man/scrot.1 new/scrot-1.4/man/scrot.1 --- old/scrot-1.3/man/scrot.1 2020-04-16 06:36:50.000000000 +0200 +++ new/scrot-1.4/man/scrot.1 2020-07-19 05:11:08.000000000 +0200 @@ -1,5 +1,5 @@ .\" Text automatically generated by txt2man -.TH scrot 1 "16 April 2020" "scrot-1.3" "command line screen capture utility" +.TH scrot 1 "18 July 2020" "scrot-1.4" "command line screen capture utility" .SH NAME \fBscrot \fP- command line screen capture utility \fB @@ -115,6 +115,11 @@ .B \fB-n\fP, \fB--note\fP Draw a text note. See NOTE FORMAT. +.TP +.B +\fB-k\fP, \fB--stack\fP +Capture stack/overlapped windows and join them together. +A running Composite Manager is needed. .SH SPECIAL STRINGS Both the \fB--exec\fP and filename parameters can take format specifiers that are expanded by \fBscrot\fP when encountered. There are two types of format specifier. @@ -143,7 +148,7 @@ .PP .nf .fam C - scrot '%Y-%m-%d_$wx$h.png' -e 'mv $f ~/shots/' + $ scrot '%Y-%m-%d_$wx$h.png' -e 'mv $f ~/shots/' .fam T .fi @@ -168,7 +173,7 @@ .fam T .fi -For the color you can use a name or a hexdecimal value. +For the color you can use a name or a hexadecimal value. .PP .nf .fam C @@ -180,7 +185,7 @@ .PP .nf .fam C - scrot --line style=dash,width=3,color="red" --select + $ scrot --line style=dash,width=3,color="red" --select .fam T .fi @@ -202,7 +207,7 @@ .PP .nf .fam C - scrot --note "-f '/usr/share/fonts/TTF/DroidSans-Bold/40' -x 10 -y 20 -c 255,0,0,255 -t 'Hi'" + $ scrot --note "-f '/usr/share/fonts/TTF/DroidSans-Bold/40' -x 10 -y 20 -c 255,0,0,255 -t 'Hi'" .fam T .fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scrot-1.3/man/scrot.txt new/scrot-1.4/man/scrot.txt --- old/scrot-1.3/man/scrot.txt 2020-04-16 06:36:50.000000000 +0200 +++ new/scrot-1.4/man/scrot.txt 2020-07-19 05:11:08.000000000 +0200 @@ -47,6 +47,8 @@ -o, --overwrite By default scrot does not overwrite the files, use this option to allow it. -n, --note Draw a text note. See NOTE FORMAT. + -k, --stack Capture stack/overlapped windows and join them together. + A running Composite Manager is needed. SPECIAL STRINGS Both the --exec and filename parameters can take format specifiers that are @@ -70,7 +72,7 @@ Example: - scrot '%Y-%m-%d_$wx$h.png' -e 'mv $f ~/shots/' + $ scrot '%Y-%m-%d_$wx$h.png' -e 'mv $f ~/shots/' This would create a file called something like 2000-10-30_2560x1024.png and move it to your shots directory. @@ -86,13 +88,13 @@ style=solid,width=1 - For the color you can use a name or a hexdecimal value. + For the color you can use a name or a hexadecimal value. color="red" or color="#ff0000" Example: - scrot --line style=dash,width=3,color="red" --select + $ scrot --line style=dash,width=3,color="red" --select NOTE FORMAT The following specifiers are recognised for the option --note: @@ -106,7 +108,7 @@ Example: - scrot --note "-f '/usr/share/fonts/TTF/DroidSans-Bold/40' -x 10 -y 20 -c 255,0,0,255 -t 'Hi'" + $ scrot --note "-f '/usr/share/fonts/TTF/DroidSans-Bold/40' -x 10 -y 20 -c 255,0,0,255 -t 'Hi'" AUTHOR scrot was originally developed by Tom Gilbert under MIT-advertising license diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scrot-1.3/src/Makefile.am new/scrot-1.4/src/Makefile.am --- old/scrot-1.3/src/Makefile.am 2020-04-16 06:36:50.000000000 +0200 +++ new/scrot-1.4/src/Makefile.am 2020-07-19 05:11:08.000000000 +0200 @@ -2,6 +2,8 @@ # gilbe...@linuxbrit.co.uk, # scrot_su...@linuxbrit.co.uk> # Copyright 2016 Joao Eriberto Mota Filho <eribe...@eriberto.pro.br> +# Copyright 2020 Jeroen Roovers <j...@gentoo.org> +# Copyright 2020 spycapitan <spycapi...@protonmail.com> # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to @@ -34,4 +36,4 @@ bin_PROGRAMS = scrot scrot_SOURCES = main.c getopt.c getopt1.c getopt.h scrot.h \ options.c options.h debug.h imlib.c structs.h note.c note.h -scrot_LDADD = -lX11 -lXfixes -lXcursor @GIBLIB_LIBS@ +scrot_LDADD = -lX11 -lXfixes -lXcomposite @GIBLIB_LIBS@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scrot-1.3/src/imlib.c new/scrot-1.4/src/imlib.c --- old/scrot-1.3/src/imlib.c 2020-04-16 06:36:50.000000000 +0200 +++ new/scrot-1.4/src/imlib.c 2020-07-19 05:11:08.000000000 +0200 @@ -1,7 +1,9 @@ /* imlib.c Copyright 1999-2000 Tom Gilbert +Copyright 2020 ideal <idealit...@gmail.com> Copyright 2020 Sean Brennan <zett...@gmail.com> +Copyright 2020 spycapitan <spycapi...@protonmail.com> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to @@ -34,17 +36,28 @@ int depth; Window root = 0; + +/* atexit register func. */ +static void uninit_x_and_imlib(void) +{ + if (disp) XCloseDisplay(disp); +} + + void init_x_and_imlib(char *dispstr, int screen_num) { disp = XOpenDisplay(dispstr); if (!disp) { fprintf(stderr, "Can't open X display. It *is* running, yeah? ["); - fprintf(stderr, "%s", dispstr); - fprintf(stderr, "]"); + fprintf(stderr, "%s", dispstr ? dispstr : + (getenv("DISPLAY") ? getenv("DISPLAY") : "NULL")); + fprintf(stderr, "]\n"); exit(EXIT_FAILURE); } + atexit(uninit_x_and_imlib); + if (screen_num) scr = ScreenOfDisplay(disp, screen_num); else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scrot-1.3/src/main.c new/scrot-1.4/src/main.c --- old/scrot-1.3/src/main.c 2020-04-16 06:36:50.000000000 +0200 +++ new/scrot-1.4/src/main.c 2020-07-19 05:11:08.000000000 +0200 @@ -10,6 +10,7 @@ Copyright 2019 Jade Auer <j...@trashwitch.dev> Copyright 2020 Hinigatsu <hiniga...@protonmail.com> Copyright 2020 Sean Brennan <zett...@gmail.com> +Copyright 2020 spycapitan <spycapi...@protonmail.com> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to @@ -72,6 +73,8 @@ scrot_do_delay(); if (opt.multidisp) { image = scrot_grab_shot_multi(); + } else if (opt.stack) { + image = scrot_grab_stack_windows(); } else { image = scrot_grab_shot(); } @@ -808,6 +811,74 @@ } Imlib_Image +scrot_grab_stack_windows(void) +{ + if (XGetSelectionOwner(disp, XInternAtom(disp, "_NET_WM_CM_S0", False)) == None) { + fprintf(stderr, "Composite Manager is not running, required to use this option.\n"); + exit(EXIT_FAILURE); + } + + unsigned long nitems_return; + unsigned long bytes_after_return; + unsigned char *prop_return; + long long_offset = 0L; + long long_length = ~0L; + Bool delete = False; + int actual_format_return; + Atom actual_type_return; + gib_list *list_images = NULL; + Imlib_Image im = NULL; + XImage *ximage = NULL; + XWindowAttributes attr; + +#define EWMH_CLIENT_LIST "_NET_CLIENT_LIST" // spec EWMH + + Atom atom_prop = XInternAtom(disp, EWMH_CLIENT_LIST, False); + Atom atom_type = AnyPropertyType; + + int result = XGetWindowProperty(disp, root, atom_prop, long_offset, long_length, + delete, atom_type, &actual_type_return, &actual_format_return, + &nitems_return, &bytes_after_return, &prop_return); + + if (result != Success || nitems_return == 0) { + fprintf(stderr, "Failed XGetWindowProperty: " EWMH_CLIENT_LIST "\n"); + exit(EXIT_FAILURE); + } + + XCompositeRedirectSubwindows(disp, root, CompositeRedirectAutomatic); + + for (int i = 0; i < nitems_return; i++) { + + Window win = *((Window*)prop_return + i); + + if (0 == XGetWindowAttributes(disp, win, &attr)) { + fprintf(stderr, "Failed XGetWindowAttributes\n"); + exit(EXIT_FAILURE); + } + + /* Only visible windows */ + if (attr.map_state != IsViewable) { + continue; + } + + ximage = XGetImage(disp, win, 0, 0, attr.width, attr.height, AllPlanes, ZPixmap); + + if (ximage == NULL) { + fprintf(stderr, "Failed XGetImage: Window id 0x%lx.\n", win); + exit(EXIT_FAILURE); + } + + im = imlib_create_image_from_ximage(ximage, NULL, attr.x, attr.y, attr.width, attr.height, 1); + + XFree(ximage); + + list_images = gib_list_add_end(list_images, im); + } + + return stalk_image_concat(list_images); +} + +Imlib_Image scrot_grab_shot_multi(void) { int screens; @@ -821,8 +892,6 @@ if (screens < 2) return scrot_grab_shot(); - dispstr = DisplayString(disp); - subdisp = gib_estrdup(DisplayString(disp)); for (i = 0; i < screens; i++) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scrot-1.3/src/note.c new/scrot-1.4/src/note.c --- old/scrot-1.3/src/note.c 2020-04-16 06:36:50.000000000 +0200 +++ new/scrot-1.4/src/note.c 2020-07-19 05:11:08.000000000 +0200 @@ -1,6 +1,7 @@ /* note.c -Copyright 2019 Daniel T. Borelli <danieltbore...@gmail.com> +Copyright 2019 Daniel T. Borelli <danieltbore...@gmail.com> +Copyright 2020 spycapitan <spycapi...@protonmail.com> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to @@ -49,12 +50,12 @@ static inline void next_space(char **tok) { - while (*++*tok == ' '); + while (*++*tok == ' ' && **tok != '\0'); } static inline void next_not_space(char **tok) { - while (*++*tok != ' '); + while (*++*tok != ' ' && **tok != '\0'); } void scrot_note_new(char *format) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scrot-1.3/src/options.c new/scrot-1.4/src/options.c --- old/scrot-1.3/src/options.c 2020-04-16 06:36:50.000000000 +0200 +++ new/scrot-1.4/src/options.c 2020-07-19 05:11:08.000000000 +0200 @@ -12,6 +12,7 @@ Copyright 2019 Daniel T. Borelli <danieltbore...@gmail.com> Copyright 2019 Jade Auer <j...@trashwitch.dev> Copyright 2020 Sean Brennan <zett...@gmail.com> +Copyright 2020 spycapitan <spycapi...@protonmail.com> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to @@ -52,6 +53,7 @@ opt.line_width = 1; opt.line_color = NULL; opt.display = NULL; + opt.stack = 0; /* Parse the cmdline args */ scrot_parse_option_array(argc, argv); @@ -64,7 +66,9 @@ int ret = 0; errno = 0; - ret = strtol(str, &end, 10); + if (str != NULL) { + ret = strtol(str, &end, 10); + } if (str == end) { fprintf(stderr, "the option is not a number: %s\n", end); @@ -157,7 +161,7 @@ static void scrot_parse_option_array(int argc, char **argv) { - static char stropts[] = "a:ofpbcd:e:hmq:st:uv+:zn:l:D:"; + static char stropts[] = "a:ofpbcd:e:hmq:st:uv+:zn:l:D:k"; static struct option lopts[] = { /* actions */ @@ -173,6 +177,7 @@ {"pointer", 0, 0, 'p'}, {"freeze", 0, 0, 'f'}, {"overwrite", 0, 0, 'o'}, + {"stack", 0, 0,'k'}, /* toggles */ {"thumb", 1, 0, 't'}, {"delay", 1, 0, 'd'}, @@ -255,6 +260,9 @@ case 'l': options_parse_line(optarg); break; + case 'k': + opt.stack = 1; + break; case '?': exit(EXIT_FAILURE); default: @@ -334,7 +342,19 @@ opt.autoselect_y=dimensions[1]; opt.autoselect_w=dimensions[2]; opt.autoselect_h=dimensions[3]; + + if (i != 4) + { + fprintf(stderr, "option 'autoselect' require 4 arguments\n"); + exit(EXIT_FAILURE); + } } + else { + fprintf(stderr, "invalid format for option -- 'autoselect'\n"); + exit(EXIT_FAILURE); + } + + } void @@ -454,7 +474,8 @@ " See SELECTION STYLE\n" " -n, --note Draw a text note.\n" " See NOTE FORMAT\n" - + " -k, --stack Capture stack/overlaped windows and join them together.\n" + " A running Composite Manager is needed.\n" "\n" " SPECIAL STRINGS\n" " Both the --exec and filename parameters can take format specifiers\n" " that are expanded by " SCROT_PACKAGE " when encountered.\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scrot-1.3/src/options.h new/scrot-1.4/src/options.h --- old/scrot-1.3/src/options.h 2020-04-16 06:36:50.000000000 +0200 +++ new/scrot-1.4/src/options.h 2020-07-19 05:11:08.000000000 +0200 @@ -7,7 +7,8 @@ Copyright 2010 Ibragimov Rinat <ibragimovri...@mail.ru> Copyright 2017 Stoney Sauce <stoneysa...@gmail.com> Copyright 2019 Daniel T. Borelli <danieltbore...@gmail.com> -Copýright 2020 Sean Brennan <zett...@gmail.com> +Copyright 2020 Sean Brennan <zett...@gmail.com> +Copyright 2020 spycapitan <spycapi...@protonmail.com> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to @@ -52,6 +53,7 @@ int overwrite; int line_style; int line_width; + int stack; char *line_color; char *output_file; char *thumb_file; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scrot-1.3/src/scrot.h new/scrot-1.4/src/scrot.h --- old/scrot-1.3/src/scrot.h 2020-04-16 06:36:50.000000000 +0200 +++ new/scrot-1.4/src/scrot.h 2020-07-19 05:11:08.000000000 +0200 @@ -5,7 +5,9 @@ scrot_su...@linuxbrit.co.uk> Copyright 2009 James Cameron <qu...@us.netrek.org> Copyright 2019 Daniel T. Borelli <danieltbore...@gmail.com> +Copyright 2020 Jeroen Roovers <j...@gentoo.org> Copyright 2020 Hinigatsu <hiniga...@protonmail.com> +Copyright 2020 spycapitan <spycapi...@protonmail.com> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to @@ -39,7 +41,7 @@ #include <X11/Xresource.h> #include <X11/cursorfont.h> #include <X11/extensions/Xfixes.h> -#include <X11/Xcursor/Xcursor.h> +#include <X11/extensions/Xcomposite.h> #include <stdio.h> #include <string.h> @@ -94,6 +96,7 @@ char *filename_im, char *filename_thumb, Imlib_Image im); Imlib_Image scrot_grab_shot_multi(void); +Imlib_Image scrot_grab_stack_windows(void); Imlib_Image stalk_image_concat(gib_list *images); void scrot_grab_mouse_pointer(const Imlib_Image image,