Enhance evil-jump-item to be able to jump between comment pairs and between same level of conditionals in c-mode.
Enhance evil-open/close-fold(s) to be able to show or hide cpp conditionals for c-mode.
Add minibuffer check to `evil-execute-in-emacs-state'

Don't return to Normal state if currently in the minibuffer.
This prevents an error if the user goes from Normal state to
Insert state for the duration of one command and then enters
the minibuffer while in Insert state.
Comments cleanup

Improve the wording of some docstrings.
Simplify `evil-insert-resume'

Define `evil-insert-resume' in terms of `evil-goto-mark'. Add a
NOERROR argument to `evil-goto-mark' to let "gi" degrade to "i"
if entering Insert state for the first time.
Fix auto-indenting of "o"/"O"

Some Emacs modes may offer an incomplete indentation implementation.
If `indent-according-to-mode' signals an error, it prevents
`evil-open-above' and `evil-open-below' from entering Insert state.
Reorder the code so that Insert state is entered first.
Check for `count` argument first in `evil-jump-item'.

If an explicit count is specified for `evil-jump-item`, point should
go to count % of the buffer. This is independent of the current major
mode, so this test must come first.
Use only hideif functions instead of regexps in `evil-jump-item`.

The hideif package provides a full interface for all necessary steps
to detect and move between pre-processor conditionals. Thus, we rely
on hideif's interface instead of own regular expressions.
Modify hideif regexps to match #elif in `evil-jump-item`.

According to Vim, `evil-jump-item` should handle an #elif statement
like an #else statement, i.e. should stop there. Unfortunately, #elif
statements are ignored by hideif functions. This changeset modifies
hideif's regular expressions locally so that #elif statements are
matched like #else statements.
Update comment-functions to use Emacs syntax information.

The functions `evil-in-comment-p`, `evil-comment-beginning` and
`evil-comment-end` use now Emacs syntax information available by
(syntax-ppss) and (syntax-char) to determine the beginning and end of
a comment.
Merge with master

Need new `evil-comment-in-p` function.
Make `evil-jump-item` work with any block comments.

This change uses Emacs syntax capabilities to detect beginning and
ends of block comments. So this movement is no longer restricted to
/* */ pairs in C-like languages but works with any proper paired
comment delimiters.
Merge-request 38: make `evil-jump-item` work with comments and #if .. #endif

This is an enhanced version of merge request #38. In addition to
certain code cleanups, `evil-jump-item` works with arbitrary block
comment pairs (not only /* ... */) and it recognises #elif
preprocessor statements.
Cleanup hideif-code in foldings.
Fix `evil-jump-item` if point is not at beginning of preprocessor statement.
Remove old code for plain /* ... */ from `evil-jump-item`.
Merge request 39: folding of preprocessor statements.
Handle indirect buffers in certain save functions.

If the current buffer (to be saved) is an indirect buffer, use the
base buffer's associated file name.

This fixes #244.