Skip to content
Commits on Feb 14, 2016
  1. Merge branch 'ligurio/typo'

    committed Feb 14, 2016
  2. @ligurio

    Fixed typo

    ligurio committed Feb 14, 2016
Commits on Sep 8, 2015
  1. ABAddressBook

    committed Sep 8, 2015
    closes #43
Commits on Jun 12, 2015
  1. Bump version to 2.4

    committed Jun 11, 2015
    Bump version for (now silent) support for El Capitan 10.11.
Commits on Jun 9, 2015
  1. @lembacon
Commits on Jun 4, 2014
  1. Bump version to 2.3

    committed Jun 4, 2014
    The new support for 10.10 calls for a version bump.
  2. @lembacon
  3. @lembacon
  4. @lembacon
  5. @lembacon

    Remove `#include <bootstrap.h>`

    lembacon committed Jun 4, 2014
    `bootstrap_port` is also declared in `mach/mach_init.h`, so this is
    not necessary.
  6. @lembacon
Commits on Jun 3, 2014
  1. @lembacon

    Fix for OS X Yosemite 10.10

    lembacon committed Jun 3, 2014
    On OS X 10.10, the original `_vprocmgr_move_subset_to_user` has been
    moved from `liblaunch.dylib` to `libxpc.dylib`, which always returns
    After some nasty reverse engineering, and some study of the source code
    of `launchd` (the version matches the one used in OS X 10.9.2) which is
    available from ``, I ripped some snippets off
    there and made this up, and it works.
Commits on May 28, 2014
  1. Prepare for a probable 10.10

    committed May 27, 2014
    We need room for the extra digit in the second part of the version.
    Also add one for the third part too, just in case.
  2. Fix comment typo

    committed May 27, 2014
Commits on Mar 10, 2014
Commits on Dec 24, 2013
  1. Describe non-pasteboard uses

    committed Dec 22, 2013
    This is a in-repository replacement of the Other Uses page from the
    GitHub wiki.
  2. Move the cross-platform configuration to

    committed Dec 22, 2013
    This gives us more room to describe the caveats of this alternate
Commits on Dec 19, 2013
  1. @docwhat

    Alternate suggested default-command

    docwhat committed Dec 19, 2013
    This is the default-command I've been using for a while.  It works pretty well across platforms, which is nice.
Commits on Jun 15, 2013
  1. wrapper: 10.9 "Mavericks" support

    committed Jun 15, 2013
    There has been some promising feedback regarding Mavericks.
        #20 (comment)
    Update the wrapper code to not issue a warning about an "unsupported
    new OS" when run on Mavericks. The existing "10.6 variation" still
    seems to be both necessary and sufficient.
    There may be further changes once Apple publishes the 10.9 launchd
    sources (e.g. if the signature of the relevant function is changed
    as it was between 10.5 and 10.6).
Commits on May 15, 2013
  1. wrapper: add -v/--version option to show version

    committed May 14, 2013
    Prior version numbers were only published as Git tags. Make
    a version number available at runtime, too. Also, include the
    supported OS releases when showing the version information.
    The most recent version number was 2.0. This commit's addition of
    previously unsupported options bumps us to 2.1.
Commits on Mar 12, 2013
  1. Clean up warnings

    committed Mar 12, 2013
    Now that -pedantic is actually active (oops: GCC never complained
    about it being misspelled), clean up several newly uncovered
    Apply the noreturn attribute to the die functions so the compiler
    knows that execution will not continue. This fixes several "variable
    is used uninitialized" warnings.
    Specify C99 to allow declaration after statement.
    Use an explicit "return;" instead of returning the "result" of
    a void function.
    Explicitly cast the dlsym result to a function pointer.
      GCC still "rightly" complains about the conversions from object
      pointer to function pointer under -pedantic, but this at least
      seems to silence Clang.
    The result compiles cleanly with clang from Xcode 4.6; GCC's only
    remaining warnings are for the object pointer to function pointer
Commits on Mar 11, 2013
  1. @Sirupsen
Commits on Aug 2, 2012
  1. wrapper: show the program's name in major messages

    committed Aug 2, 2012
    Since this wrapper program is typically used in an "automatic"
    (non-interactive) way, it may be helpful to the user to include the
    program's name in some of the messages it prints.
    Add the program's name to the following messages:
     * The "unsupported old/new OS" messages may appear by themselves
       (e.g. before the wrapper is updated to handle a new OS X release).
     * The message after the reattach_failed label will also be issued
       after any earlier message (except the old/new OS message).
     * The message for a failed exec.
    Suggested-By: #14
  2. wrapper: handle malloc() errors for -l processing

    committed Aug 2, 2012
    Handle malloc() errors that might come up while doing "login"
    processing (massaging the new command's argv[0] when the "-l" option
    is used).
    Skip the string/argument manipulation and just use the strings that
    were given in the wrapper's argv. The new program will not find that
    its argv[0] starts with a dash, but we will at least give it
    a chance to try to run (although it may also face serious problems).
  3. wrapper: make errors fall through to exec()

    committed Aug 1, 2012
    Above the declaration of _vprocmgr_move_subset_to_user() in
    10.8's launchd-442.21/liblaunch/vproc_priv.h there is a comment that
    > One day, we'll be able to get rid of this...
    This caused me to consider the situation where the function is no
    longer available (whether or not some other workaround is required
    to (e.g.) gain access to the pasteboard).
    The original behavior of this wrapper program is to immediately
    abort on all errors. This is acceptable behavior for programs that
    are used interactively where the user can decide what to do next
    (e.g. try again without the wrapper).
    However, this wrapper is not typically used interactively, but more
    "automatically" (e.g. via default-command in tmux; as I described in
    the README). The abort-on-error behavior is much less acceptable in
    this situation (it would appear that tmux was unable to create
    (default) sessions, windows, or panes). For "automatic" uses, it
    would be much nicer to always attempt to run the specified program
    (after printing an appropriate message that describes the reason we
    failed to reattach to the user bootstrap namespace).
    Therefore, adjust the error handling so that we always fall through
    to the code that does the exec() (while still issuing informative
Commits on Jul 30, 2012
  1. wrapper: explicitly warn about unknown options

    committed Jul 29, 2012
    Reported as item #1 here:
  2. wrapper: simplify arg copying

    committed Jul 29, 2012
    The "-l" processing that was hoisted up in the previous commit made
    the "arg" variable effectively a constant. Replace it and the
    associated "ofs" variable with inline constants.
  3. wrapper: account for -l when checking argc

    committed Jul 29, 2012
    If "-l" is the first argument, record the fact in a variable and
    adjust argv and argc as if had not been present. This lets the
    existing "minimum arguments" check to handle the case where "-l" is
    the only argument.
    Previously, if "-l" was the only argument, we would end up with
    a segmentation fault from accidentally doing strlen(argv[argc])
    (i.e. strlen(NULL)) in the dash-prefixing code.
    Reported as item #2 here:
Something went wrong with that request. Please try again.