1. 22 Oct, 2018 1 commit
    • Björn Linse's avatar
      ui: disable clearing almost everywhere · e598811e
      Björn Linse authored
      Avoid clearing the screen in most situations. NOT_VALID should be
      equivalent to CLEAR unless some external force messed up the terminal,
      for these situations <c-l> and :mode will still clear the screen.
      Also eliminate some obsolete code in screen.c, that dealt with that in
      vim drawing window 1 can mess up window 2, but this never happens in
      But what about slow terminals? There is two common meanings in which
      a terminal is said to be "slow":
      Most commonly (and in the sense of vim:s nottyfast) it means low
      bandwidth for sending bytes from nvim to the terminal. If the screen is
      very similar before and after the update_screen(CLEAR) this change
      should reduce bandwidth. If the screen is quite different, but there is
      no new regions of contiguous whitespace, clearing doesn't reduce
      bandwidth significantly. If the new screen contains a lot of whitespace,
      it will depend of if vsplits are used or not: as long as there is no
      vsplits, ce is used to cheaply clear the rest of the line, so
      full-screen clear is not needed to reduce bandwith. However a left
      vsplit currently needs to be padded with whitespace all the way to the
      separator. It is possible ec (clear N chars) can be used to reduce
      bandwidth here if this is a problem. (All of this assumes that one
      doesn't set Normal guibg=... on a non-BCE terminal, if you do you are
      doomed regardless of this change).
      Slow can also mean that drawing pixels on the screen is slow. E-ink
      screens is a recent example. Avoiding clearing and redrawing the
      unchanged part of the screen will always improve performance in these
  2. 07 Aug, 2018 1 commit
  3. 23 Jun, 2018 1 commit
  4. 10 Jun, 2018 1 commit
  5. 11 Mar, 2018 1 commit
  6. 19 Apr, 2017 1 commit
  7. 16 Apr, 2017 1 commit
  8. 02 Mar, 2017 1 commit
  9. 14 Feb, 2017 1 commit
    • ZyX's avatar
      *: Partial string handling refactoring · efa2682e
      ZyX authored
      Main points:
      - Replace `char_u` with `char` in some cases.
      - Remove `str[len] = NUL` hack in some cases when `str` may be considered
  10. 13 Sep, 2016 1 commit
    • Justin M. Keyes's avatar
      refactor: eliminate misc2.c · df072c3b
      Justin M. Keyes authored
      move `call_shell` to misc1.c
      Move some fns to state.c
      Move some fns to option.c
      Move some fns to memline.c
      Move `vim_chdir*` fns to file_search.c
      Move some fns to new module, bytes.c
      Move some fns to fileio.c
  11. 01 May, 2016 1 commit
    • ZyX's avatar
      *: Fix new linter errors · cf4e1fb0
      ZyX authored
      Originally there were 128 new errors, so I thought this is a good idea to fix 
      all of them. Of course, this commit also fixes many suppressed errors.
  12. 13 May, 2015 1 commit
  13. 24 Apr, 2015 1 commit
  14. 07 Apr, 2015 2 commits
    • Eliseo Martínez's avatar
      Enable -Wconversion: farsi.c: Cleanup. · 2cd78638
      Eliseo Martínez authored
      No semantic changes. Just some reformatting to save lines.
    • Eliseo Martínez's avatar
      Enable -Wconversion: farsi.c: Solve issues. · 0601da3e
      Eliseo Martínez authored
      Refactor summary:
      - toF_TyB: int fn(int) --> char_u fn(int)
      - put_and_redo: void fn(int) --> void fn(char_u)
          * put_curr_and_l_to_X: void fn(int) --> void fn(char_u)
              - toF_TyA: int fn(int) --> char_u fn(char_u)
          * toF_Xor_X_: int fn(int) --> char_u fn(int)
      - toF_leading: int fn(int) --> char_u fn(char_u)
      - toF_Rjoin: int fn(int) --> char_u fn(char_u)
      - toF_ending: int fn(int) --> char_u fn(char_u)
      - canF_Ljoin: bool fn(int) --> bool fn(char_u)
      - canF_Rjoin: bool fn(int) --> bool fn(char_u)
      - F_isterm: bool fn(int) --> bool fn(char_u)
      Helped-by: default avataroni-link <knil.ino@gmail.com>
  15. 16 Mar, 2015 1 commit
  16. 15 Nov, 2014 1 commit
    • Michael Reed's avatar
      farsi.c: Misc. fixes · e1e3edf9
      Michael Reed authored
      - Converted some functions to return bools, and changed their respective
        comments to reflect that.
      - Minor fixes to a few comments
  17. 08 Jul, 2014 1 commit
  18. 13 Jun, 2014 1 commit
  19. 02 Jun, 2014 1 commit
    • ZyX's avatar
      Add automatic generation of headers · 70929f7e
      ZyX authored
      - The 'stripdecls.py' script replaces declarations in all headers by includes to
        generated headers.
        `ag '#\s*if(?!ndef NEOVIM_).*((?!#\s*endif).*\n)*#ifdef INCLUDE_GENERATED'`
        was used for this.
      - Add and integrate gendeclarations.lua into the build system to generate the
        required includes.
      - Add -Wno-unused-function
      - Made a bunch of old-style definitions ANSI
      This adds a requirement: all type and structure definitions must be present
      before INCLUDE_GENERATED_DECLARATIONS-protected include.
      Warning: mch_expandpath (path.h.generated.h) was moved manually. So far it is
      the only exception.
  20. 28 May, 2014 2 commits
  21. 15 May, 2014 3 commits
    • Eliseo Martínez's avatar
      Introduce nvim namespace: Fix unmasked strings.h issue. · 762a8ad0
      Eliseo Martínez authored
      Problem:  Now that nvim/strings.h is correctly namespaced, an issue
                that had been masked until now arises:
                When compiling, we get a lot of errors because of everywhere
                the functions in nvim/strings.h are used, there's no include
                to import them.
                But, how could this compile and work previously, then? It
                turns out that:
                - In every such case, we are also including vim.h, which in
                  turn includes os_unix_defs.h.
                - os_unix_defs.h includes <string.h> and also <strings.h> in
                  some systems (e.g. OSX).
                - Build had been modified previously to (even when importing
                  system headers), prefer equally-named local ones. That was
                  in fact done as a previous attempt to solve the same issue
                  we are trying to solve another way now.
                So, we were including our "strings.h" as a side-effect of
                including <strings.h> through "vim.h" --> "os_unix_defs.h".
      Solution: Correctly include "nvim/strings.h" in every file needing it.
    • Eliseo Martínez's avatar
      Introduce nvim namespace: Fix project-local includes. · 409cc138
      Eliseo Martínez authored
      Prepend 'nvim/' in all project-local (non-system) includes.
    • Eliseo Martínez's avatar
      Introduce nvim namespace: Move files. · da51dc9c
      Eliseo Martínez authored
      Move files from src/ to src/nvim/.
      - src/nvim/ becomes the new root dir for nvim executable sources.
      - src/libnvim/ is planned to become root dir of the neovim library.
  22. 01 May, 2014 1 commit
    • Justin M. Keyes's avatar
      revert #652 · 1b521768
      Justin M. Keyes authored
      reverting broad cosmetic/style change because:
      - increases merge-conflicts
      - increases overhead of merging upstream Vim patches
      - reasons for change are ambiguous, so default to no change
  23. 29 Apr, 2014 1 commit
  24. 25 Mar, 2014 2 commits
  25. 19 Mar, 2014 1 commit
  26. 16 Mar, 2014 1 commit
  27. 07 Mar, 2014 1 commit
  28. 02 Mar, 2014 1 commit
    • Nicolas Pierron's avatar
      Remove __ARGS macro. Close #205 · d9283c49
      Nicolas Pierron authored
      This is a squash of all commits sent to #81.
      - Remove unused undef of __ARGS.
      - Fix mch_rename declaration.
      - Follow changes related to moved & extracted files.
      - Properly indent function declarations of getchar.h and quickfix.c.
  29. 26 Feb, 2014 1 commit
    • scott-linder's avatar
      Removes 'proto' dir · 0ef90c13
      scott-linder authored
      See #137 for the issue.
      Every header in the proto directory was:
      * Given include guards in the form
          #ifndef NEOVIM_FILENAME_H
          #define NEOVIM_FILENAME_H
          #endif /* NEOVIM_FILENAM_H */
      * Renamed from *.pro -> *.h
      * Moved from src/proto/ to src/
      This would have caused conficts with some existing headers in src/;
      rather than merge these conflicts now (which is a whole other can of
      worms involving multiple and conditional inclusion), any header in src/
      with a conflicting name was renamed from *.h -> *_defs.h (which may or
      may not actually describe its purpose, the change is purely a
      namespacing issue).
      Once all of these changes were made a script was developed to determine
      what #includes needed to be added to each source file to describe its
      dependencies and allow it to compile; because the script is so short
      and I'll just list it here:
          #! /bin/bash
          cd $(dirname $0)
          # Scrapes `make` output for provided error messages and outputs #includes
          # needed to resolve them.
          #   $1 : part of the clang error message between filename and identifier
          list_missing_includes() {
              for file_missing_pair in $(CC=clang make 2>&1 >/dev/null | sed -n "s/\/\(.*\.[hc]\).*$1.*'\(.*\)'.*/\1:\2/p"); do
                  fields=(${file_missing_pair//:/ })
                  # Try to find the declaration of the missing function.
                  echo $(basename $source_file) \
                      \#include \"$(grep -r "\b$missing_func __ARGS" | sed -n "s/.*\/\(.*\)\:.*/\1/p")\"
              # Remove duplicates
              done | sort | uniq
          echo "Finding missing function prototypes..."
          list_missing_includes "implicit declaration of function"
          echo "Finding missing identifier declarations..."
          list_missing_includes "use of undeclared identifier"
      Each list of required headers was added by hand in the following format:
          #include "vim.h"
          #include "*_defs.h"
          #include "filename.h"
          /* All other includes in same module here, in alphabetical order. */
          /* All includes from other modules (e.g. "os/*.h") here in alphabetical
           * order. */
  30. 24 Feb, 2014 1 commit
    • scott-linder's avatar
      Convert function declarations from K&R to ANSI style. · b76c358f
      scott-linder authored
      cproto (http://invisible-island.net/cproto/) was used to do the bulk of
      the work in batch; even the most recent version had some issues with
      typedef'd parameters; a quick "patch" was to modify `lex.l` to
      explicitly include all vim typedefs as known types. One example from
      `vim.h` is
          typedef unsigned char char_u;
      which was added in `lex.l` as
          <INITIAL>char_u    { save_text_offset(); return T_CHAR; }
      Even with these changes there were some problems:
      * Two files (`mbyte.c` and `os_unix.c`) were not cleanly converted.
      * Any function with the `UNUSED` macro in its parameter list was not converted.
      Rather than spend more time fixing the automated approach, the two files
      `mbyte.c` and `os_unix.c` were converted by hand.
      The `UNUSED` macros were compiler specific, and the alternative, generic
      version would require a different syntax, so in order to simplify the
      conversion all uses of `UNUSED` were stripped, and then the sources were
      run back through cproto. It is planned to reconsider each use of
      `UNUSED` manually using a new macro definition.
  31. 31 Jan, 2014 1 commit
    • Thiago de Arruda's avatar
      Import vim from changeset v5628:c9cad40b4181 · 72cf89bc
      Thiago de Arruda authored
      - Cleanup source tree, leaving only files necessary for compilation/testing
      - Process files through unifdef to remove tons of FEAT_* macros
      - Process files through uncrustify to normalize source code formatting.
      - Port the build system to cmake