Permalink
Commits on Oct 18, 2011
  1. Fix an innocent typo

    committed Oct 18, 2011
Commits on Oct 17, 2011
  1. Use `printf %q' instead of `set -x': debug_run()

    `set -x' + setting PS4 was really hackish.
    `printf %q' should guarantee the printed command line is properly quoted,
    and is equivalent to the command line that's actually run.
    Also, the (( verbosity ... )) tests are now only done inside functions.
    Also, the _msg() function is changed again to take the same approach as
    the new _quote_cmd_line() function does.
    committed Oct 17, 2011
  2. Respect the order in which -b and -w are given

    With this, only -w specified after -b will include window borders.
    This enables the user to include borders for only some of the windows.
    
    This can also be a double-edged sword, in that now the user has finer
    control, but (s)he must be fully aware of the effects of the order in
    which options are given.  Yes, you should.
    However, the user will most likely want to specify -b at the very
    first, which gives the old behavior of a "global" switch.
    committed Oct 17, 2011
Commits on Oct 15, 2011
  1. Explicitly terminate option list of `printf'

    This prevents `printf' from choking on prefixes starting with '-'.
    _msg() being a "private" function, this does not really matter, but
    when it comes to expression, the more accurate, the better.
    committed Oct 15, 2011
Commits on Oct 11, 2011
  1. Silly rephrase.

    committed Oct 11, 2011
  2. Let line width be strictly <80

    Nothing to {se,her}e
    committed Oct 11, 2011
Commits on Oct 9, 2011
Commits on Oct 8, 2011
  1. Use `printf %(fmt)T' instead of `date'

    Since we already rely on Bash 4.2, no reason to prefer the external `date'
    to the builtin `printf'.
    committed Oct 8, 2011
Commits on Oct 7, 2011
  1. Workaround: recordMyDesktop's -x, -y don't take 0

    I definitely call it a bug on recordMyDesktop's side, but even if
    recordMyDesktop fixed this bad behavior, in order to support older versions
    of it, we'd still have to workaround this.  (Remember when I said hell?)
    committed Oct 7, 2011
Commits on Oct 6, 2011
  1. Add support for byzanz-record as cast command

    Untested example: ffcast -s byzanz-record -- cast.gif -l
    committed Oct 6, 2011
Commits on Oct 5, 2011
  1. xrectsel: don't grab keyboard

    This seems nothing necessary, but a behaviour copied from scrot.
    By not grabbing the keyboard, xrectsel works more like xwininfo.
    This also gives the user a chance to prepare/clean up while xrectsel
    waits for a selection.
    committed Oct 5, 2011
  2. Don't actually do region selection while getopts

    Insead, save the actions as they're specified, and do it later in that order
    after parsing geospec.  This has two advantages:
    
     - We can die early when an invalid geospec is given- don't even bother
       interactive selection.
    
     - The error message on detecting invalid root dimensions will now respect
       verbosity.  In fact, this is a good reason not to run anything before
       getopts.
    committed Oct 5, 2011
  3. Add support for recordMyDesktop as cast command

    Working example: ffcast -vvw recordmydesktop -- -o cast.ogv
    committed Oct 5, 2011
  4. Add support for potential alternative cast command

    It's easy enough to add support for screencasting tools other than FFmpeg.
    An obvious example is the avconv command from libav, but almost anything
    will work.  This is possible thanks to KISS, especially the stupid bit.
    
    Also, we don't split the command line before getopts.  That was dumb.
    committed Oct 5, 2011
  5. Don't use 'declare -i' when it's unsafe

    'declare -i' can introduce subtle bugs, for example:
    
      $ declare -i x; a=a; x=a
      bash: a: expression recursion level exceeded (error token is "a")
    
    Note the assignment 'x=a' triggers arithmetic evaluation. Similarly,
    (( expression )) can introduce such bugs if used carelessly:
    
      $ a=a; (( a ))
      bash: ((: a: expression recursion level exceeded (error token is "a")
    
    Realize this, and always sanitize a variable before evaluation.
    committed Oct 5, 2011
Commits on Oct 4, 2011
  1. Prevent (( 0 )) from triggering error

    This is of course due to 'set -e'.
    Also some other small fixes.
    committed Oct 4, 2011
  2. Add "Get the Source" section

    ..and another stupid Q&A
    committed Oct 4, 2011
Commits on Oct 3, 2011
  1. Don't use -Werror

    Fix warnings on variables being used uninitialized.
    Remove -Werror so we compilation don't fail due to trivial warnings.
    xrectsel.c is for now just a quick hack, so...
    committed Oct 3, 2011
  2. Remove two spaces

    committed Oct 3, 2011
  3. Add example of the simplest form

    This is the real starter and default.
    committed Oct 3, 2011
  4. By default, fullscreen is selected

    We already did that; here's adding the help message.
    committed Oct 3, 2011
  5. Add -p option- print geometry only

    The output of -p option is in the format of wxh+x+y -- a valid geospec
    reusable by ffcast.
    committed Oct 3, 2011
  6. Fix return value not being 0

    Quoting bash(1):
    
    return [n]
      Causes a function to exit with the return value specified by n.
      If n is omitted, the return status is that of the last command
      executed in the function body.
    committed Oct 3, 2011
  7. Add version 0.3 to xrectsel.c comments

    Since ffcast.bash says "requires xrectsel 0.3", so be it.
    committed Oct 3, 2011
  8. Add "Design" section to README

    It all started from the the hypothetical syntax...
    committed Oct 3, 2011