* magit.el (magit-quit-window): Fix Issue #825, reset
  magit-previous-window-configuration and not
  magit-restore-window-configuration.
* magit-key-mode.el (magit-key-mode-groups): Add author argument to commit function with completion.
* magit.el (magit-log-make-author-date-overlay): Fix for french locale.
* magit.el (magit-buffer-switch): Fix Issue #825, check all magit
  buffers.
(magit-quit-window): No need to restore magit-previous-window-configuration.
* magit.el (magit-buffer-switch): Keep fixing Issue #825, check if
  window is visible before poping to magit buffer.
* magit.el (magit-log-make-author-date-overlay): Allow truncation of
  other langs, assuming unit (e.g week, hours, etc..) come in all
  languages after number.
* magit.el (magit-log-make-author-date-overlay): Fix, use cl-loop and
  not loop.
* magit.el (magit-commit-add-log): Allow calling it even if magit-commit
  have not been called already.
(magit--commit-mode-buffer): New internal.
* magit-key-mode.el (magit-key-mode-groups): Allow using "C" after "c".
Merge branch 'master' into origin-exp
Merge branch 'master' into origin-exp
add magit-decode-git-path

... and use it to undo the following in some places.

(There might be some other places that could benefit from this.  Or
maybe there are event better places to do this instead, to avoid doing
it repeatedly.)

https://github.com/git/git/blob/master/quote.c

Quoting man:git-config "core.quotepath":

The commands that output paths (e.g.  ls-files, diff), when not given
the -z option, will quote "unusual" characters in the pathname by
enclosing the pathname in a double-quote pair and with backslashes the
same way strings in C source code are quoted. If this variable is set
to false, the bytes higher than 0x80 are not quoted but output as
verbatim. Note that double quote, backslash and control characters are
always quoted without -z regardless of the setting of this variable.

Thanks to Nicolas Richard for investigating this issue.  #581, #840.
Merge branch 'master' into origin-exp
Add debug statement to magit-section-action
Resurrect the staged version of a file

'k' on deleted file in the "Unstaged changes" section use to first reset
all change on the staged version and then checkout the file as in the
last commit. This can lead to data lost if one have already staged some
change, then deleted the file then try to resurrect the just deleted
file.

It less surprising if we resurrect the staged version of a file when it
is different from the committed version.
Merge remote-tracking branch 'refs/remotes/upstream/master'
Partially revert "magit-git{,k}-executable: store full path, not just name"

This partially reverts commit 99b89109f5058cea8c60f28951d044afe7e95efa.

Using the full path to the git executable running git remotely fails
if it isn't installed in the same location locally and remotely.

Thanks to Piers Cawley for reporting.
Merge pull request #850 from tarsius/decode-filename

add magit-decode-git-path
Merge pull request #854 from vanicat/t/resurect-stagged-files

Resurrect the staged version of a file
Simpler version of magit-decode-git-path

Given that emacs can read strings, there is no need for the manual
decoding introduced by commit 68b3317.