wok rev 13590
scrot: up 0.8-12 (with patches)
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Wed Nov 07 02:05:38 2012 +0000 (2012-11-07) |
parents | a00b16a1dca0 |
children | 4aed2b24febc |
files | scrot/receipt scrot/stuff/scrot.patch |
line diff
1.1 --- a/scrot/receipt Tue Nov 06 16:37:56 2012 +0100 1.2 +++ b/scrot/receipt Wed Nov 07 02:05:38 2012 +0000 1.3 @@ -1,31 +1,30 @@ 1.4 # SliTaz package receipt. 1.5 1.6 PACKAGE="scrot" 1.7 -VERSION="0.8" 1.8 +VERSION="0.8-12" 1.9 CATEGORY="x-window" 1.10 -SHORT_DESC="A screen capture utility." 1.11 -MAINTAINER="rocky@slitaz.org" 1.12 -DEPENDS="giblib" 1.13 -BUILD_DEPENDS="giblib giblib-dev imlib2-dev" 1.14 -TARBALL="$PACKAGE-$VERSION.tar.gz" 1.15 -WEB_SITE="http://www.linuxbrit.co.uk/scrot" 1.16 +SHORT_DESC="A screen capture utility" 1.17 +MAINTAINER="al.bobylev@gmail.com" 1.18 +DEPENDS="bzlib freetype giblib glibc-base imlib2 libxcb xorg-libX11 \ 1.19 +xorg-libXau xorg-libXdmcp xorg-libXext zlib" 1.20 +BUILD_DEPENDS="patch giblib-dev imlib2-dev xorg-libX11-dev" 1.21 +TARBALL="$PACKAGE-${VERSION%-*}.tar.gz" 1.22 +WEB_SITE="http://freecode.com/projects/scrot" 1.23 WGET_URL="http://www.linuxbrit.co.uk/downloads/$TARBALL" 1.24 1.25 # Rules to configure and make the package. 1.26 compile_rules() 1.27 { 1.28 - cd $src 1.29 - ./configure --prefix=/usr \ 1.30 - --mandir=/usr/share/man \ 1.31 - --disable-nls \ 1.32 - $CONFIGURE_ARGS && 1.33 - make && 1.34 - make DESTDIR=$PWD/_pkg install 1.35 + cd $src 1.36 + patch -p1 < $stuff/scrot.patch 1.37 + ./configure $CONFIGURE_ARGS && 1.38 + make && 1.39 + make DESTDIR=$PWD/_pkg install 1.40 } 1.41 1.42 # Rules to gen a SliTaz package suitable for Tazpkg. 1.43 genpkg_rules() 1.44 { 1.45 - mkdir -p $fs/usr 1.46 - cp -a $_pkg/usr/bin $fs/usr 1.47 + mkdir -p $fs/usr 1.48 + cp -a $_pkg/usr/bin $fs/usr 1.49 }
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/scrot/stuff/scrot.patch Wed Nov 07 02:05:38 2012 +0000 2.3 @@ -0,0 +1,440 @@ 2.4 +# This patch was created manually from patches found here: 2.5 +# http://scrot.sourcearchive.com/downloads/0.8-12/scrot_0.8-12.debian.tar.gz 2.6 + 2.7 +## 01_manpagefix.dpatch by William Vera <billy@billy.com.mx> 2.8 +## DP: Character cleanup for UTF-8 compatibility. 2.9 + 2.10 +--- scrot-0.8-orig/scrot.1 2.11 ++++ scrot-0.8/scrot.1 2.12 +@@ -87,7 +87,7 @@ 2.13 + \\n prints a newline (ignored when used in the filename) 2.14 + .fi 2.15 + .SH EXAMPLE 2.16 +-scrot '%Y-%m-%d_$wx$h.png' -e 'mv $f ~/shots/' 2.17 ++scrot '%Y\-%m\-%d_$wx$h.png' \-e 'mv $f ~/shots/' 2.18 + .br 2.19 + This would create a file called something like 2.20 + 2000-10-30_2560x1024.png and move it to your shots directory. 2.21 + 2.22 +## 02_options.c.dpatch by William Vera <billy@billy.com.mx> 2.23 +## DP: A little fix for wrong words. 2.24 + 2.25 +--- scrot-0.8-orig/src/options.c 2.26 ++++ scrot-0.8/src/options.c 2.27 +@@ -229,7 +229,7 @@ 2.28 + " low quality means high compression.\n" 2.29 + " -m, --multidisp For multiple heads, grab shot from each\n" 2.30 + " and join them together.\n" 2.31 +- " -s, --select interactively choose a window or rectnagle\n" 2.32 ++ " -s, --select interactively choose a window or rectangle\n" 2.33 + " with the mouse\n" 2.34 + " -t, --thumb NUM generate thumbnail too. NUM is the percentage\n" 2.35 + " of the original size for the thumbnail to be,\n" 2.36 +@@ -238,7 +238,7 @@ 2.37 + " Both the --exec and filename parameters can take format specifiers\n" 2.38 + " that are expanded by " PACKAGE " when encountered.\n" 2.39 + " There are two types of format specifier. Characters preceded by a '%%'\n" 2.40 +- " are interpretted by strftime(2). See man strftime for examples.\n" 2.41 ++ " are interpreted by strftime(2). See man strftime for examples.\n" 2.42 + " These options may be used to refer to the current date and time.\n" 2.43 + " The second kind are internal to " PACKAGE 2.44 + " and are prefixed by '$'\n" 2.45 + 2.46 +## 003_descmanpage.dpatch by William Vera <billy@billy.com.mx> 2.47 +## DP: Change the description on manpage. 2.48 + 2.49 +--- scrot-0.8-orig/scrot.1 2.50 ++++ scrot-0.8/scrot.1 2.51 +@@ -1,6 +1,6 @@ 2.52 + .TH scrot 1 "Oct 26, 2000" 2.53 + .SH NAME 2.54 +-scrot - Screen capture using imlib2 2.55 ++scrot - capture a screenshot using imlib2 2.56 + .SH SYNOPSIS 2.57 + scrot [options] [file] 2.58 + .SH DESCRIPTION 2.59 + 2.60 +## 04-focused.dpatch by James Cameron <quozl@us.netrek.org> 2.61 +## DP: src/options.c (scrot_parse_option_array): add --focused option. 2.62 +## DP: src/main.c (scrot_get_geometry, scrot_nice_clip): new functions 2.63 +## for common code used by both selected and focused screenshot. 2.64 +## DP: src/main.c (scrot_grab_focused): new function to grab currently 2.65 +## focused window after specified delay. 2.66 + 2.67 +--- scrot-0.8-orig/src/options.h 2.68 ++++ scrot-0.8/src/options.h 2.69 +@@ -32,6 +32,7 @@ 2.70 + int delay; 2.71 + int countdown; 2.72 + int select; 2.73 ++ int focused; 2.74 + int quality; 2.75 + int border; 2.76 + int multidisp; 2.77 +--- scrot-0.8-orig/src/options.c 2.78 ++++ scrot-0.8/src/options.c 2.79 +@@ -44,13 +44,15 @@ 2.80 + static void 2.81 + scrot_parse_option_array(int argc, char **argv) 2.82 + { 2.83 +- static char stropts[] = "bcd:e:hmq:st:v+:"; 2.84 ++ static char stropts[] = "bcd:e:hmq:st:uv+:"; 2.85 + static struct option lopts[] = { 2.86 + /* actions */ 2.87 + {"help", 0, 0, 'h'}, /* okay */ 2.88 + {"version", 0, 0, 'v'}, /* okay */ 2.89 + {"count", 0, 0, 'c'}, 2.90 + {"select", 0, 0, 's'}, 2.91 ++ {"focused", 0, 0, 'u'}, 2.92 ++ {"focussed", 0, 0, 'u'}, /* macquarie dictionary has both spellings */ 2.93 + {"border", 0, 0, 'b'}, 2.94 + {"multidisp", 0, 0, 'm'}, 2.95 + /* toggles */ 2.96 +@@ -95,6 +97,9 @@ 2.97 + case 's': 2.98 + opt.select = 1; 2.99 + break; 2.100 ++ case 'u': 2.101 ++ opt.focused = 1; 2.102 ++ break; 2.103 + case '+': 2.104 + opt.debug_level = atoi(optarg); 2.105 + break; 2.106 +@@ -231,6 +236,7 @@ 2.107 + " and join them together.\n" 2.108 + " -s, --select interactively choose a window or rectangle\n" 2.109 + " with the mouse\n" 2.110 ++ " -u, --focused use the currently focused window\n" 2.111 + " -t, --thumb NUM generate thumbnail too. NUM is the percentage\n" 2.112 + " of the original size for the thumbnail to be,\n" 2.113 + " or the geometry in percent, e.g. 50x60 or 80x20.\n" 2.114 +--- scrot-0.8-orig/src/scrot.h 2.115 ++++ scrot-0.8/src/scrot.h 2.116 +@@ -72,7 +72,10 @@ 2.117 + char *filename_im, char *filename_thumb); 2.118 + void scrot_do_delay(void); 2.119 + Imlib_Image scrot_sel_and_grab_image(void); 2.120 ++Imlib_Image scrot_grab_focused(void); 2.121 + void scrot_sel_area(int *x, int *y, int *w, int *h); 2.122 ++void scrot_nice_clip(int *rx, int *ry, int *rw, int *rh); 2.123 ++int scrot_get_geometry(Window target, int *rx, int *ry, int *rw, int *rh); 2.124 + Window scrot_get_window(Display *display,Window window,int x,int y); 2.125 + Window scrot_get_client_window(Display * display, Window target); 2.126 + Window scrot_find_window_by_property(Display * display, const Window window, 2.127 +--- scrot-0.8-orig/src/main.c 2.128 ++++ scrot-0.8/src/main.c 2.129 +@@ -48,7 +48,9 @@ 2.130 + } 2.131 + 2.132 + 2.133 +- if (opt.select) 2.134 ++ if (opt.focused) 2.135 ++ image = scrot_grab_focused(); 2.136 ++ else if (opt.select) 2.137 + image = scrot_sel_and_grab_image(); 2.138 + else { 2.139 + scrot_do_delay(); 2.140 +@@ -171,6 +173,22 @@ 2.141 + } 2.142 + 2.143 + Imlib_Image 2.144 ++scrot_grab_focused(void) 2.145 ++{ 2.146 ++ Imlib_Image im = NULL; 2.147 ++ int rx = 0, ry = 0, rw = 0, rh = 0; 2.148 ++ Window target = None; 2.149 ++ int ignored; 2.150 ++ 2.151 ++ scrot_do_delay(); 2.152 ++ XGetInputFocus(disp, &target, &ignored); 2.153 ++ if (!scrot_get_geometry(target, &rx, &ry, &rw, &rh)) return NULL; 2.154 ++ scrot_nice_clip(&rx, &ry, &rw, &rh); 2.155 ++ im = gib_imlib_create_image_from_drawable(root, 0, rx, ry, rw, rh, 1); 2.156 ++ return im; 2.157 ++} 2.158 ++ 2.159 ++Imlib_Image 2.160 + scrot_sel_and_grab_image(void) 2.161 + { 2.162 + Imlib_Image im = NULL; 2.163 +@@ -313,57 +331,10 @@ 2.164 + rh = 0 - rh; 2.165 + } 2.166 + } else { 2.167 +- Window child; 2.168 +- XWindowAttributes attr; 2.169 +- int stat; 2.170 +- 2.171 + /* else it's a window click */ 2.172 +- /* get geometry of window and use that */ 2.173 +- /* get windowmanager frame of window */ 2.174 +- if (target != root) { 2.175 +- unsigned int d, x; 2.176 +- int status; 2.177 +- 2.178 +- status = XGetGeometry(disp, target, &root, &x, &x, &d, &d, &d, &d); 2.179 +- if (status != 0) { 2.180 +- Window rt, *children, parent; 2.181 +- 2.182 +- for (;;) { 2.183 +- /* Find window manager frame. */ 2.184 +- status = XQueryTree(disp, target, &rt, &parent, &children, &d); 2.185 +- if (status && (children != None)) 2.186 +- XFree((char *) children); 2.187 +- if (!status || (parent == None) || (parent == rt)) 2.188 +- break; 2.189 +- target = parent; 2.190 +- } 2.191 +- /* Get client window. */ 2.192 +- if (!opt.border) 2.193 +- target = scrot_get_client_window(disp, target); 2.194 +- XRaiseWindow(disp, target); 2.195 +- } 2.196 +- } 2.197 +- stat = XGetWindowAttributes(disp, target, &attr); 2.198 +- if ((stat == False) || (attr.map_state != IsViewable)) 2.199 +- return NULL; 2.200 +- rw = attr.width; 2.201 +- rh = attr.height; 2.202 +- XTranslateCoordinates(disp, target, root, 0, 0, &rx, &ry, &child); 2.203 ++ if (!scrot_get_geometry(target, &rx, &ry, &rw, &rh)) return NULL; 2.204 + } 2.205 +- 2.206 +- /* clip rectangle nicely */ 2.207 +- if (rx < 0) { 2.208 +- rw += rx; 2.209 +- rx = 0; 2.210 +- } 2.211 +- if (ry < 0) { 2.212 +- rh += ry; 2.213 +- ry = 0; 2.214 +- } 2.215 +- if ((rx + rw) > scr->width) 2.216 +- rw = scr->width - rx; 2.217 +- if ((ry + rh) > scr->height) 2.218 +- rh = scr->height - ry; 2.219 ++ scrot_nice_clip(&rx, &ry, &rw, &rh); 2.220 + 2.221 + XBell(disp, 0); 2.222 + im = gib_imlib_create_image_from_drawable(root, 0, rx, ry, rw, rh, 1); 2.223 +@@ -371,6 +342,72 @@ 2.224 + return im; 2.225 + } 2.226 + 2.227 ++/* clip rectangle nicely */ 2.228 ++void 2.229 ++scrot_nice_clip(int *rx, 2.230 ++ int *ry, 2.231 ++ int *rw, 2.232 ++ int *rh) 2.233 ++{ 2.234 ++ if (*rx < 0) { 2.235 ++ *rw += *rx; 2.236 ++ *rx = 0; 2.237 ++ } 2.238 ++ if (*ry < 0) { 2.239 ++ *rh += *ry; 2.240 ++ *ry = 0; 2.241 ++ } 2.242 ++ if ((*rx + *rw) > scr->width) 2.243 ++ *rw = scr->width - *rx; 2.244 ++ if ((*ry + *rh) > scr->height) 2.245 ++ *rh = scr->height - *ry; 2.246 ++} 2.247 ++ 2.248 ++/* get geometry of window and use that */ 2.249 ++int 2.250 ++scrot_get_geometry(Window target, 2.251 ++ int *rx, 2.252 ++ int *ry, 2.253 ++ int *rw, 2.254 ++ int *rh) 2.255 ++{ 2.256 ++ Window child; 2.257 ++ XWindowAttributes attr; 2.258 ++ int stat; 2.259 ++ 2.260 ++ /* get windowmanager frame of window */ 2.261 ++ if (target != root) { 2.262 ++ unsigned int d, x; 2.263 ++ int status; 2.264 ++ 2.265 ++ status = XGetGeometry(disp, target, &root, &x, &x, &d, &d, &d, &d); 2.266 ++ if (status != 0) { 2.267 ++ Window rt, *children, parent; 2.268 ++ 2.269 ++ for (;;) { 2.270 ++ /* Find window manager frame. */ 2.271 ++ status = XQueryTree(disp, target, &rt, &parent, &children, &d); 2.272 ++ if (status && (children != None)) 2.273 ++ XFree((char *) children); 2.274 ++ if (!status || (parent == None) || (parent == rt)) 2.275 ++ break; 2.276 ++ target = parent; 2.277 ++ } 2.278 ++ /* Get client window. */ 2.279 ++ if (!opt.border) 2.280 ++ target = scrot_get_client_window(disp, target); 2.281 ++ XRaiseWindow(disp, target); 2.282 ++ } 2.283 ++ } 2.284 ++ stat = XGetWindowAttributes(disp, target, &attr); 2.285 ++ if ((stat == False) || (attr.map_state != IsViewable)) 2.286 ++ return 0; 2.287 ++ *rw = attr.width; 2.288 ++ *rh = attr.height; 2.289 ++ XTranslateCoordinates(disp, target, root, 0, 0, rx, ry, &child); 2.290 ++ return 1; 2.291 ++} 2.292 ++ 2.293 + Window 2.294 + scrot_get_window(Display * display, 2.295 + Window window, 2.296 + 2.297 +## 05-addfocusedmanpage.dpatch by William Vera <billy@billy.com.mx> 2.298 +## DP: Add a new option in the man page (focused option). 2.299 + 2.300 +--- scrot-0.8-orig/scrot.1 2.301 ++++ scrot-0.8/scrot.1 2.302 +@@ -43,6 +43,9 @@ 2.303 + .B -s, --select 2.304 + Interactively select a window or rectangle with the mouse. 2.305 + .TP 5 2.306 ++.B -u, --focused 2.307 ++Use the currently focused window. 2.308 ++.TP 5 2.309 + .B -t, --thumb NUM 2.310 + generate thumbnail too. NUM is the percentage of the original size for the 2.311 + thumbnail to be. 2.312 + 2.313 +## 06_manpagespace.dpatch by William Vera <billy@billy.com.mx> 2.314 +## DP: Improve spacing in manual page. 2.315 + 2.316 +--- scrot-0.8-orig/scrot.1 2.317 ++++ scrot-0.8/scrot.1 2.318 +@@ -58,7 +58,7 @@ 2.319 + These options may be used to refer to the current date and time. 2.320 + The second kind are internal to scrot and are prefixed by '$' 2.321 + The following specifiers are recognised: 2.322 +-.br 2.323 ++.PP 2.324 + .B $f 2.325 + image path/filename (ignored when used in the filename) 2.326 + .br 2.327 + 2.328 +## 07_fix-formatstring.dpatch by George Danchev <danchev@spnet.net> 2.329 +## DP: Prevent arbitrary long file names 2.330 + 2.331 +--- scrot-0.8-orig/src/options.c 2.332 ++++ scrot-0.8/src/options.c 2.333 +@@ -124,6 +124,12 @@ 2.334 + if (!opt.output_file) 2.335 + { 2.336 + opt.output_file = argv[optind++]; 2.337 ++ 2.338 ++ if ( strlen(opt.output_file) > 256 ) { 2.339 ++ printf("output filename too long.\n"); 2.340 ++ exit(EXIT_FAILURE); 2.341 ++ } 2.342 ++ 2.343 + if (opt.thumb) 2.344 + opt.thumb_file = name_thumbnail(opt.output_file); 2.345 + } 2.346 + 2.347 +## fix-beeping.dpatch by Ibragimov Rinat <ibragimovrinat@mail.ru> 2.348 +## DP: Fix missing option for beep prevention. 2.349 + 2.350 +--- scrot-0.8-orig/scrot.1 2.351 ++++ scrot-0.8/scrot.1 2.352 +@@ -49,6 +49,9 @@ 2.353 + .B -t, --thumb NUM 2.354 + generate thumbnail too. NUM is the percentage of the original size for the 2.355 + thumbnail to be. 2.356 ++.TP 5 2.357 ++.B -z, --silent 2.358 ++prevent beeping. 2.359 + .SH SPECIAL STRINGS 2.360 + Both the 2.361 + .B --exec 2.362 +--- scrot-0.8-orig/src/main.c 2.363 ++++ scrot-0.8/src/main.c 2.364 +@@ -154,7 +154,7 @@ 2.365 + { 2.366 + Imlib_Image im; 2.367 + 2.368 +- XBell(disp, 0); 2.369 ++ if (! opt.silent) XBell(disp, 0); 2.370 + im = 2.371 + gib_imlib_create_image_from_drawable(root, 0, 0, 0, scr->width, 2.372 + scr->height, 1); 2.373 +@@ -336,7 +336,7 @@ 2.374 + } 2.375 + scrot_nice_clip(&rx, &ry, &rw, &rh); 2.376 + 2.377 +- XBell(disp, 0); 2.378 ++ if (! opt.silent) XBell(disp, 0); 2.379 + im = gib_imlib_create_image_from_drawable(root, 0, rx, ry, rw, rh, 1); 2.380 + } 2.381 + return im; 2.382 +--- scrot-0.8-orig/src/options.c 2.383 ++++ scrot-0.8/src/options.c 2.384 +@@ -44,7 +44,7 @@ 2.385 + static void 2.386 + scrot_parse_option_array(int argc, char **argv) 2.387 + { 2.388 +- static char stropts[] = "bcd:e:hmq:st:uv+:"; 2.389 ++ static char stropts[] = "bcd:e:hmq:st:uv+:z"; 2.390 + static struct option lopts[] = { 2.391 + /* actions */ 2.392 + {"help", 0, 0, 'h'}, /* okay */ 2.393 +@@ -55,6 +55,7 @@ 2.394 + {"focussed", 0, 0, 'u'}, /* macquarie dictionary has both spellings */ 2.395 + {"border", 0, 0, 'b'}, 2.396 + {"multidisp", 0, 0, 'm'}, 2.397 ++ {"silent", 0, 0, 'z'}, 2.398 + /* toggles */ 2.399 + {"thumb", 1, 0, 't'}, 2.400 + {"delay", 1, 0, 'd'}, 2.401 +@@ -109,6 +110,9 @@ 2.402 + case 't': 2.403 + options_parse_thumbnail(optarg); 2.404 + break; 2.405 ++ case 'z': 2.406 ++ opt.silent = 1; 2.407 ++ break; 2.408 + default: 2.409 + break; 2.410 + } 2.411 +@@ -246,6 +250,7 @@ 2.412 + " -t, --thumb NUM generate thumbnail too. NUM is the percentage\n" 2.413 + " of the original size for the thumbnail to be,\n" 2.414 + " or the geometry in percent, e.g. 50x60 or 80x20.\n" 2.415 ++ " -z, --silent Prevent beeping\n" 2.416 + "\n" " SPECIAL STRINGS\n" 2.417 + " Both the --exec and filename parameters can take format specifiers\n" 2.418 + " that are expanded by " PACKAGE " when encountered.\n" 2.419 +--- scrot-0.8-orig/src/options.h 2.420 ++++ scrot-0.8/src/options.h 2.421 +@@ -35,6 +35,7 @@ 2.422 + int focused; 2.423 + int quality; 2.424 + int border; 2.425 ++ int silent; 2.426 + int multidisp; 2.427 + int thumb; 2.428 + int thumb_width; 2.429 + 2.430 +## 09_fix-minusign.dpatch by William Vera <billy@billy.com.mx> 2.431 +## DP: Fix a hyphen-used-as-minus-sign in a manpage. 2.432 + 2.433 +--- scrot-0.8-orig/scrot.1 2.434 ++++ scrot-0.8/scrot.1 2.435 +@@ -93,7 +93,7 @@ 2.436 + \\n prints a newline (ignored when used in the filename) 2.437 + .fi 2.438 + .SH EXAMPLE 2.439 +-scrot '%Y-%m-%d_$wx$h.png' -e 'mv $f ~/shots/' 2.440 ++scrot '%Y-%m-%d_$wx$h.png' \-e 'mv $f ~/shots/' 2.441 + .br 2.442 + This would create a file called something like 2.443 + 2000-10-30_2560x1024.png and move it to your shots directory.