Permalink
Commits on Aug 24, 2015
  1. Merge branch 'msys2'

    Support compiling Git Cheetah in Git for Windows 2.x' SDK.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 24, 2015
  2. Squelch warnings when compiling with Git for Windows 2.x' SDK

    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 24, 2015
  3. Always compile with gcc

    This avoids the problem where the cc.exe of *MSys2* would be picked to
    compile Git Cheetah in Git for Windows 2.x' SDK because there is no
    MinGW cc.exe.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 24, 2015
  4. Avoid redefinitions with modern MinGW headers

    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 24, 2015
  5. Do not mark exported functions as 'inline'

    It is not possible for GCC's linker to inline functions, and modern GCC
    refuses to auto-remove the 'inline' attribute in such cases.
    
    Needed to compile Git Cheetah with Git for Windows 2.x' SDK.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Aug 24, 2015
Commits on Jul 15, 2014
  1. Merge pull request #17 from chaos7theory/unescaped-tokens

    Escaped extra tokens that broke the Git Bash context option.
    dscho committed Jul 15, 2014
Commits on Jul 12, 2014
Commits on Jun 20, 2014
  1. README.txt: add a link to the wiki page

    Looking at the readme as a newcomer, it wasn't clear to me what Git
    Cheetah was for. A quick web search yielded the wiki page, which was
    much more informative!
    ctrueden committed Jun 20, 2014
Commits on Apr 15, 2014
  1. Merge pull request #16 from johnstevenson/winexec2

    Memory-leak fix and code formatting in winexec.c
    dscho committed Apr 15, 2014
Commits on Mar 29, 2014
  1. Style-cleanup

    Signed-off-by: johnstevenson <john-stevenson@blueyonder.co.uk>
    johnstevenson committed Mar 29, 2014
  2. Frees the orig variable in the path_split function

    Signed-off-by: johnstevenson <john-stevenson@blueyonder.co.uk>
    johnstevenson committed Mar 29, 2014
Commits on Mar 28, 2014
  1. Provide a Windows-specific implementation of exec_program_v()

    Building in Visual Studio 2010 causes clients to hang if they
    read stdout (Far Manager, for example). This does not happen for
    MinGW builds, so this rough hack uses Win32 handles for
    redirection, rather than C file-descriptors.
    
    [JES: formatted source code a little bit, moved around a little
    bit, simplified integration of the Windows-specific code.]
    
    Signed-off-by: johnstevenson <john-stevenson@blueyonder.co.uk>
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    johnstevenson committed with dscho Mar 27, 2014
Commits on Mar 26, 2014
  1. Merge pull request #15 from msysgit/far-manager

    Detach Git Bash
    
    Tested by @johnstevenson.
    dscho committed Mar 26, 2014
Commits on Mar 24, 2014
  1. Detach Git Bash

    When called from the Windows Explorer, we must not wait for the
    stdout/stderr of Git Bash.
    
    A recent change made for FarManager makes Git Cheetah capture
    stderr/stdout even when we are not interested in it, to avoid cluttering
    FarManager's precious console. Due to this workaround, Git Bash makes the
    Explorer -- Git Cheetah's primary intended consumer -- hang.
    
    Since Git Bash does not output anything to the calling console, let's just
    force the detached mode by avoiding the FarManager workaround *just* for
    Git Bash.
    
    Thanks to John Stevenson for catching a bug in an earlier version of this
    commit.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Mar 23, 2014
Commits on Mar 14, 2014
  1. Merge pull request #14 from kblees/kb/redirect-output-to-null

    Fix menu commands blocking the file manager process
    dscho committed Mar 14, 2014
Commits on Mar 5, 2014
  1. exec.c: redirect unwanted command output to /dev/null

    Git-Cheetah redirects and reads stdout / stderr of forked commands only if
    it needs to. Otherwise this output simply goes to stdout / stderr of the
    calling file manager process. This is OK for GUI-based file managers (e.g.
    Windows Explorer), as there is no console.
    
    For text-based file managers (e.g. Far Manager) this is a problem, as such
    unwanted console output messes up the UI.
    
    Redirect stdout / stderr of forked commands to /dev/null if Git-Cheetah
    doesn't need it.
    
    Signed-off-by: Karsten Blees <blees@dcon.de>
    kblees committed Mar 5, 2014
  2. Revert "always read stdout and stderr from forked commands"

    This reverts commit f743394.
    
    Most Git-Cheetah commands are expected to launch an independent process,
    without blocking the calling file manager application.
    
    Signed-off-by: Karsten Blees <blees@dcon.de>
    kblees committed Mar 5, 2014
Commits on Jan 3, 2014
  1. Merge pull request #11 from msysgit/hv/read_output_from_tools

    always read stdout and stderr from forked commands
    
    This fixes #2
    dscho committed Jan 3, 2014
Commits on Nov 11, 2013
  1. Merge pull request #8 from johnstevenson/vs-pain

    Reduce pain points with Visual Studio
    dscho committed Nov 11, 2013
  2. Reduce pain points with Visual Studio

    There are plenty of hoops to jump through before you can build
    and debug using Visual Studio. Even more if you then want to
    contribute any changes back.
    
    This pain can be alleviated by providing a single project file
    (suitable for Visual Studio 2010 upwards), removing the use of
    make in the build process and bypassing the version info mechanism.
    
    Maintainability over different versions is aided by the code being
    in a single project file with most properties being controlled by
    external property sheets.
    
    Signed-off-by: johnstevenson <john-stevenson@blueyonder.co.uk>
    johnstevenson committed Nov 10, 2013
  3. Merge pull request #7 from johnstevenson/registry-path-fix

    Registry path fix
    dscho committed Nov 11, 2013
Commits on Nov 9, 2013
  1. Fix find_msysgit_in_path() when PATH is in cmd folder rather than bin

    msysgit_in_path() expects the PATH to git.exe to be in "../bin/""
    whereas Git for Windows uses "../cmd/". This results in the
    PathToMsys registry value being set to "../cmd/git.exe" which means
    that git_path() will always fail.
    
    This only happens when the dll is outside the git-cheetah folder, as
    can be the case when you are debugging.
    
    Signed-off-by: johnstevenson <john-stevenson@blueyonder.co.uk>
    johnstevenson committed Nov 3, 2013
Commits on Nov 2, 2013
  1. Prevent duplicate menus being created by explorer

    On Vista duplicated Git menu entries are added when you right-click a
    folder in the Folders pane.
    
    This is because the Shell calls the handler for the Directory\Background
    progid first (with a folder pidl), then calls it again for the other
    entries with a data object. So the trick is to check if the Git menu has
    already been written.
    
    One way you can do this is by using InsertMenuItem on all menu entries
    and adding a unique identifier (your module handle, for example) to the
    dwItemData member of the item structure. Then in the QueryContextMenu
    function you can check if any menu item has this value and act
    accordingly.
    
    [JES: moved hInst back into the Explorer-specific part]
    
    Signed-off-by: johnstevenson <john-stevenson@blueyonder.co.uk>
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    johnstevenson committed with dscho Nov 1, 2013
Commits on Jun 18, 2013
  1. Merge pull request #4 from kblees/kb/really-dont-cache-environment-va…

    …riables
    
    This fixes environment issues (too aggressive caching)
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Jun 18, 2013
Commits on Jun 17, 2013
  1. really don't cache environment variables

    As of c67941 "don't cache environment variables, fix non-ASCII environment
    variables", git-cheetah fails to show context menu items unless the git
    installation directory is in the PATH.
    
    This is due to mingw_spawnvpe_cwd using getenv("PATH") internally, which is
    the state of the PATH variable as cached by MSVCRT on startup.
    
    To allow for environment changes in the hosting exporer process, we shall
    not use any cached variant of the environment.
    
    Reimplement mingw_getenv to access the Win32 environment directly (instead
    of MSVCRT's cached version).
    
    Update fork_process to use the improved non-caching getenv instead of the
    more complex Win32 function.
    
    Also add a minimal setenv implementation and use it in fork_process, so
    that we don't mix POSIX and Win32 APIs.
    
    Reported-by: Peter Oberndorfer <kumbayo84@gmail.com>
    Signed-off-by: Karsten Blees <blees@dcon.de>
    kblees committed Jun 17, 2013
Commits on Feb 26, 2013
  1. Add a convenience goal 'checkinstall'

    The checkinstall(8) tool is a very convenient tool to install packages
    from source, integrating into the current system's default package
    manager.
    
    However, it does a slightly lousy job at determining package name
    and version from the directory name 'git-cheetah': it tries to use
    'git' as package name and 'cheetah' as version number (which fails
    on Debian, because Debian requires version numbers to start with
    a digit). So help it a little by adding a goal that automatically
    determines correct default values.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Feb 26, 2013
  2. Use GTK 3 for Nautilus

    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Feb 26, 2013
  3. Fix a compiler warning

    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Feb 26, 2013
Commits on Feb 23, 2013
  1. Merge remote-tracking branch 'kblees/kb/dont-cache-environment-variab…

    …les'
    Heiko Voigt committed Feb 23, 2013
Commits on Feb 22, 2013
  1. don't cache environment variables, fix non-ASCII environment variables

    GitCheetah caches environment variables when spawning the first child
    process. Thus, updates to the hosting explorer process's environment are
    not reflected in subsequently spawned child processes.
    
    Note: if and when explorer updates its environment variables from the
    registry seems to depend on the Windows version.
    
    Additionally, non-ASCII environment variables are mangled in child
    processes, as GetEnvironmentStringsA returns OEM-encoded strings, but
    CreateProcessA expects ANSI.
    
    Remove the copying / caching of the entire environment. When spawning
    child processes, just tweak the PATH variable temporarily.
    
    Reading a single environment variable (GetEnvironmentVariableA) instead of
    the entire environment (GetEnvironmentStringsA) implicitly fixes non-ASCII
    variables.
    
    Signed-off-by: Karsten Blees <blees@dcon.de>
    kblees committed Feb 22, 2013
Commits on Jan 13, 2013
  1. always read stdout and stderr from forked commands

    When not doing so such output would be forwarded to a program using
    this plugin. Normally in Windows GUI programs there is no console so
    this did not disturb anyone.
    
    Far Manager is a console program that also uses shell extensions for
    which this was reported.
    
    Fix this by always reading the output into a strbuf. Since we are
    tracing the ouput later on anyway the output does not get lost.
    
    Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
    Heiko Voigt committed Jan 13, 2013
Commits on Nov 16, 2012
  1. Merge pull request #1 from msysgit/hv/correct_return_type

    use correct return type macros of dll interface
    dscho committed Nov 16, 2012
Commits on May 3, 2012
  1. use correct return type macros of dll interface

    In commit d1ad8f1 Pat Thoyts corrected the return type macros of the dlls
    interface. This was a good change so we add it here again.
    Heiko Voigt committed May 3, 2012
Commits on May 2, 2012
  1. fix a crash when active_menu is NULL

    On windows when right clicking on an item in a search result that was
    moved to the trash the active_menu is NULL for some reason.
    
    It is likely that build_cheetah_menu() has failed somewhere in the
    callchain and thus left the active_menu invalid.
    
    With this patch invoking the menu on such items does still not work but
    the explorer does not crash anymore.
    
    Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
    Heiko Voigt committed May 2, 2012
  2. use correct buffer size for vsnprintf in debug_git

    This fixes a bug when debug_git is omitting some output that was
    formatted by %i (or %x) at the end of the string.
    
    It seems that when the final '\0' does not fit into the length given the
    last format was omitted on mingw. Now the debug output works as
    expected.
    
    Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
    Heiko Voigt committed May 2, 2012