wok-4.x rev 12354

scrot: up 0.8-12 (with patches)
author Aleksej Bobylev <al.bobylev@gmail.com>
date Wed Nov 07 02:08:04 2012 +0000 (2012-11-07)
parents 28ba3ac5e889
children e1165b16ad00
files scrot/receipt scrot/stuff/scrot.patch
line diff
     1.1 --- a/scrot/receipt	Sun Nov 04 22:03:14 2012 +0100
     1.2 +++ b/scrot/receipt	Wed Nov 07 02:08:04 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:08:04 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.