aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/mbyte.c
Commit message (Collapse)AuthorAge
* Move utf8len_tab definition to globals.hJames McCoy2016-11-23
| | | | | | | | | | | | | The existing code would cause utf8len_tab to be declared as non-extern when main.cpp included globals.h as well as in mbyte.c. This causes the following warning Linking C executable ../../bin/nvim /usr/bin/ld: Warning: size of symbol `utf8len_tab' changed from 256 in CMakeFiles/nvim.dir/main.c.o to 320 in CMakeFiles/nvim.dir/mbyte.c.o Moving the definition to globals.h and using INIT() ensures the array is only defined in main.cpp and other places globals.h is included see an extern declaration.
* encoding: delete non-UTF-8 implementations of multibyte functionsBjörn Linse2016-11-05
| | | | Deleted documentation was duplicated at specific utf_ implementation
* encoding: cleanup mbyte.c given fixed encoding=utf-8Björn Linse2016-11-05
| | | | | | | | | Eliminate mb_init(): Set "enc_utf" and "has_mbyte" early. Eliminate "enc_unicode" and "enc_latin1like". init_chartab() and screenalloc() are already invoked elsewhere in the initialization process. The EncodingChanged autocmd cannot be triggered. At initialization, there is no spellfiles to reload
* ui: Fix the call to utf_ambiguous_widthJames McCoy2016-10-11
| | | | | | | | | | | | | | | `utf_ambiguous_width` expects the Unicode character, but in 9e1c6596 I just passed the first UTF-8 byte to the function. This led to various display problems because now many multi-cell characters weren't falling into that part of the branch. Also, to better align with the existing Vim code, remove the forced cursor update. Setting the flag will cause it to happen in the next UI_CALL. Thanks to qvacua for all the help investigating the issue! Closes #5448
* vim-patch:7.4.1697James McCoy2016-09-24
| | | | | | | | | Problem: Display problems when the 'ambiwidth' and 'emoji' options are not set properly or the terminal doesn't behave as expected. Solution: After drawing an ambiguous width character always position the cursor. https://github.com/vim/vim/commit/cb0700844c1274fe8bc0ceaffaee0ad21c406f30
* vim-patch:7.4.1629James McCoy2016-09-24
| | | | | | | | | | Problem: Handling emoji characters as full width has problems with backwards compatibility. Solution: Remove ambiguous and double width characters from the emoji table. Use a separate table for the character class. (partly by Yashuhiro Matsumoto) https://github.com/vim/vim/commit/b86f10ee10bdf932df02bdaf601dffa671518a47
* vim-patch:7.4.1620James McCoy2016-09-24
| | | | | | | Problem: Emoji characters are not considered as a kind of word character. Solution: Give emoji characters a word class number. (Yashuhiro Matsumoto) https://github.com/vim/vim/commit/4077b33a8370afb3d5ae74e556a0119cf51fe294
* vim-patch:7.4.1604James McCoy2016-09-24
| | | | | | | | | Problem: Although emoji characters are ambiguous width, best is to treat them as full width. Solution: Update the Unicode character tables. Add the 'emoji' options. (Yasuhiro Matsumoto) https://github.com/vim/vim/commit/3848e00e0177abdb31bc600234967863ec487233
* refactor: eliminate misc2.cJustin M. Keyes2016-09-13
| | | | | | | | | | 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
* mbyte.c: Move utf8/utf16 functions to mbyte.cJustin M. Keyes2016-07-30
|
* *: Fix errors from new linter checksZyX2016-06-11
|
* mbyte.c: Fix invalid memory access in utfc_ptr2char_lenoni-link2016-04-15
| | | | | | To get an UTF-8 character, utf_ptr2char() is used. But this function can read more than maxlen bytes, if an incomplete byte sequence is used(first byte specifies a length > maxlen).
* build: install *.mo into the "standard" directoryJun T2016-02-23
| | | | | | | Change POROJECT_NAME to 'nvim', and use it as the gettext domain name. The *.mo files, previously installed as $runtime/lang/xx/LC_MESSAGES/nvim.mo, are now installed as $prefix/locale/xx/LC_MESSAGES/nvim.mo.
* encoding: cleanup defaults of iskeyword, isprint and fileencodingsBjörn Linse2016-01-02
|
* encoding: Always use "utf-8" as default for &encodingBjörn Linse2016-01-02
| | | | Preverve the locale-depedency for fileencodings=default
* src/*: Remove `VIM - Vi improved ...` headerMichael Reed2015-11-27
| | | | | | | | | | | | | | | | | | | Regarding the individual items in the header: `Vim - Vi improved by Bram Moolenar` Bram Moolenar is already mentioned throughout the documentation, as well as the intro screen. `:help uganda` It's already shown to all users who don't use `shortmess+=I` upon starting nvim, and is already placed prominently in help.txt, i.e., `:help` run with no arguments. `:help credits` Already mentioned near the top of help.txt. `README.md` Already mentioned in develop.txt.
* Remove unnecessary includes for errno.hRui Abreu Ferreira2015-11-25
|
* src: README.txt -> README.mdMichael Reed2015-11-23
| | | | | The former no longer exists in this repo; see the top of src/nvim/README.md.
* viminfo: First version of ShaDa file dumpingZyX2015-10-08
| | | | | | | | | | | | | | | | | | | | What works: 1. ShaDa file dumping: header, registers, jump list, history, search patterns, substitute strings, variables. 2. ShaDa file reading: registers, global marks, variables. Most was not tested. TODO: 1. Merging. 2. Reading history, local marks, jump and buffer lists. 3. Documentation update. 4. Converting some data from &encoding. 5. Safer variant of dumping viminfo (dump to temporary file then rename). 6. Removing old viminfo code (currently masked with `#if 0` in a ShaDa file for reference).
* Generate unicode tables with script when buildingZyX2015-07-26
|
* vim-patch:7.4.575 #2835Felipe Morales2015-06-17
| | | | | | | | | | ``` updated for version 7.4.575 Problem: Unicode character properties are outdated. Solution: Update the tables with the latest version. ``` https://code.google.com/p/vim/source/detail?r=v7-4-575
* Passing by: Remove X_LOCALE refsMichael Reed2015-05-30
| | | | We don't link to any X11 libs, so this is most likely unneeded.
* getenv: return NULL if empty #2574Scott Prager2015-05-29
| | | | | | Making an environment variable empty can be a way of unsetting it for platforms that don't support unsetenv(). In most cases, we treat empty variables as having been unset. For all others, use os_env_exists().
* options: mark nonfunctional &termencoding option as hidden. #2631Björn Linse2015-05-17
| | | | | | | Remove related dead code and references in the docs. Helped-By: Michael Reed <m.reed@mykolab.com> Helped-By: Shougo Matsushita <Shougo.Matsu@gmail.com>
* Replace vim_iswhite with ascii_iswhite() defined in ascii.hFelipe Oliveira Carvalho2015-04-24
|
* memory: Add `free` wrapper and refactor project to use itThiago de Arruda2015-04-13
| | | | | | We already use wrappers for allocation, the new `xfree` function is the equivalent for deallocation and provides a way to fully replace the malloc implementation used by Neovim.
* Remove redundant castsAnton Ovchinnikov2015-03-09
|
* Enable -Wconversion: mark.c.Eliseo Martínez2015-02-18
| | | | | | Refactoring summary: - MB_STRNICMP: Inlined. - MB_STRNCMP: Inlined.
* Enable -Wconversion: Passing-by: Remove dead code (MACOS_CONVERT).Eliseo Martínez2015-02-18
| | | | MacOS (pre Mac OS X) is not supported anymore.
* Enable -Wconversion: ui.c.Eliseo Martínez2015-02-18
| | | | | | | | | | | | | | | Refactoring summary: - ui_write(): len: int --> size_t * parse_abstract_ui_codes(): len: int --> size_t * string_convert(): lenp: int * --> size_t * - string_convert_ext(): lenp : int * --> size_t * unconvlenp: int * --> size_t * * utf8len_tab_zero: char[] --> uint8_t[] * iconv_string(): slen : int --> size_t unconvlenp: int * --> size_t * resultlenp: int * --> size_t * - mch_print_text_out(): len: int --> size_t * out_pos: int --> size_t
* Macro cleanup: MiscellaneousMichael Reed2015-01-14
| | | | | | These were found with -Wunused-macros. There are many more macros which triggered that warning, but they were primarily part of larger sets of macros so leave them alone.
* Macro cleanup: PROTOMichael Reed2015-01-14
| | | | | | Regarding dict_lookup() in eval.c: both definitions are the same, the only difference being the spacing between the indirection operator and the indentation level.
* vim-patch:7.4.520Florian Walch2014-12-23
| | | | | | | Problem: Sun PCK locale is not recognzed. Solution: Add PCK in the table. (Keiichi Oono) https://code.google.com/p/vim/source/detail?r=v7-4-520
* Remove dec-mcs remnantsMichael Reed2014-12-19
| | | | | It was (apparently) the default character encoding file used for line printing on VMS, which is unsupported.
* Change the signature of utf_convert() (mbyte.c) to use ARRAY_SIZEFelipe Oliveira Carvalho2014-12-18
|
* Change the signature of intable() (mbyte.c) to use ARRAY_SIZEFelipe Oliveira Carvalho2014-12-18
|
* Define and use the ARRAY_SIZE macroFelipe Oliveira Carvalho2014-12-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A similar macro is defined in the Linux kernel [1]. To refactor the code I used a slightly modified Coccinelle script I found in [2]. ```diff // Use the macro ARRAY_SIZE when possible // // Confidence: High // Copyright: (C) Gilles Muller, Julia Lawall, EMN, DIKU. GPLv2. // URL: http://www.emn.fr/x-info/coccinelle/rules/array.html // Options: -I ... -all_includes can give more complete results @@ type T; T[] E; @@ - (sizeof(E)/sizeof(*E)) + ARRAY_SIZE(E) @@ type T; T[] E; @@ - (sizeof(E)/sizeof(E[...])) + ARRAY_SIZE(E) @@ type T; T[] E; @@ - (sizeof(E)/sizeof(T)) + ARRAY_SIZE(E) @n@ identifier AS,E; @@ - #define AS(E) ARRAY_SIZE(E) @@ expression E; identifier n.AS; @@ - AS(E) + ARRAY_SIZE(E) ``` `spatch --in-place --sp-file array_size.cocci -I src/ -I build/include/ -I build/src/nvim/auto/ src/nvim/*.c` [1] http://lxr.free-electrons.com/source/include/linux/kernel.h#L54 [2] http://www.emn.fr/z-info/coccinelle/rules/#macros
* Little by little add 'const' were possible: mbyte.cDominique Pelle2014-12-15
|
* Merge pull request #1497 from splinterofchaos/const-attrJustin M. Keyes2014-11-29
|\ | | | | constify and func-attribute memory.c and strings.c
| * strings/memory: constify and func_attr.Scott Prager2014-11-27
| | | | | | | | Fix MB_COPY_cHAR() to accept const pointers.
* | ui: Move check_col/check_row functions to mbyte.cThiago de Arruda2014-11-27
|/ | | | | These functions were only being used by mbyte.c, so move them and add the "static" modifier.
* iconv: re-enableNicolas Hillegeer2014-11-06
| | | | | This seems to have been disabled in the transition from vim to neovim, re-enable it.
* ui: Refactor input buffer handlingThiago de Arruda2014-10-18
| | | | | All input buffer code was moved to os/input.c, and `inbuf` is now a `RBuffer` instance(which abstracts static buffer manipulation).
* vim-patch:7.4.444Daniel Kosinski2014-10-04
| | | | | | | Problem: Reversed question mark not recognized as punctuation. ( Issue 258 ) Solution: Add the Supplemental Punctuation range. https://code.google.com/p/vim/source/detail?r=v7-4-444
* Use strict function prototypes #945Pavel Platto2014-07-14
| | | | | | | | | | | | | | | | | | | `-Wstrict-prototypes` warn if a function is declared or defined without specifying the argument types. This warning disallow function prototypes with empty parameter list. In C, a function declared with an empty parameter list accepts an arbitrary number of arguments when being called. This is for historic reasons; originally, C functions didn't have prototypes, as C evolved from B, a typeless language. When prototypes were added, the original typeless declarations were left in the language for backwards compatibility. Instead we should provide `void` in argument list to state that function doesn't have arguments. Also this warning disallow declaring type of the parameters after the parentheses because Neovim header generator produce no declarations for old-stlyle prototypes: it expects to find `{` after prototype.
* Include stdbool.h in some files which use itPavel Platto2014-07-11
| | | | | | | Done by manual inspection of the output of this script: grep -r -l -w "bool\|true\|false" * | grep 'c$\|h$' > has_bool grep -r -l "stdbool.h" * | grep 'c$\|h$' > has_include grep -F -x -v -f has_include has_bool
* move errno.h include out of vim.hBrandon Coleman2014-07-09
|
* move wctype.h include out of vim.hBrandon Coleman2014-07-09
|
* move <inttypes.h> include out of vim.hBrandon Coleman2014-07-09
|
* move locale.h include out of vim.hBrandon Coleman2014-07-09
|