Merging patches from upstream Vim - minsuk-jang/teamproject GitHub Wiki

_See ** ๋น ๋ฅธ ์‹œ์ž‘ ** ์ฆ‰์‹œ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค. ๋˜ํ•œ ** Not Applicable ** patches ๋ถ€๋ถ„์„ ์ฐธ๊ณ ํ•˜์‹ญ์‹œ์˜ค.

Neovim์€ Vim 7.4.160์—์„œ ์œ ๋ž˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ค‘๋ณต ๋œ ์ž‘์—…์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๊ด€๋ จ Vim ํŒจ์น˜๋ฅผ ์ตœ์‹ ์œผ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ # 438์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. Vim ํŒจ์น˜์˜ ์ƒํƒœ๋ฅผ ๋ณด๋ ค๋ฉด ** vim patch report ** ๋˜๋Š” vim-patch.sh๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค :

./scripts/vim-patch.sh -l

๊ด€๋ จ๋œ ๋ชจ๋“  Vim ํŒจ์น˜์— ๋Œ€ํ•ด ๋ˆ„๊ตฌ๋‚˜ pull request๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ผ๋ถ€ ํŒจ์น˜ ์œ ํ˜•์€ ** ์ ์šฉ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค : **

  • ** ์ปดํŒŒ์ผ๋Ÿฌ ๊ฒฝ๊ณ  ์ˆ˜์ • ** : Neovim์€ ์ „ํ˜€ ๊ฒฝ๊ณ ํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด์„œ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์œผ๋ฉฐ Vim๊ณผ ๋งค์šฐ ๋‹ค๋ฅธ ๋นŒ๋“œ ์‹œ์Šคํ…œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
    • ** ์ฐธ๊ณ  : ** Vim์˜ Coverity fixs๋Š” Neovim๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ** # ifdef ์กฐ์ • ** : ์˜ˆ๋ฅผ ๋“ค์–ด Vim์€ ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ 'FEAT_VISUAL'์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์œผ๋‚˜ Neovim์€ ์ด๋ฏธ ๊ทธ๋ ‡๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด 'FEAT_' ๋ถ™์ž„์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ๋˜ํ•œ Neovim๊ณผ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.
  • ** ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ ์ง€์› ** : Amiga, OS / 2 Xenix, Mac OS 9, XP SP2๋ณด๋‹ค ์˜ค๋ž˜๋œ Windows ๋“ฑ์˜ legacy ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์€ Neovim์—์„œ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • **if _ *. c ** ๋ณ€๊ฒฝ :if_python.c ์™ธ. al. ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ** term.c ** ๋ณ€๊ฒฝ : Neovim TUI๋Š” ํ„ฐ๋ฏธ๋„ ํ™”๋ฉด์„ ์ฝ๋Š” ๋ฐ libtermkey๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Vim์˜ `term.c '๊ฐ€ ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋Œ€๋ถ€๋ถ„์˜ ** GUI์™€ ๊ด€๋ จ๋œ ** ๋ณ€๊ฒฝ ์‚ฌํ•ญ : Neovim GUI๋Š” ํ•ต์‹ฌ C ์ฝ”๋“œ๋ฒ ์ด์Šค ์™ธ๋ถ€์—์„œ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ๊ฒƒ์€ ๊ด€๋ จ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์˜์˜ ์ธก๋ฉด์—์„œ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์œผ๋ฉฐ ํ™•์‹คํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ฌธ์ œ๋ฅผ ๊ฒŒ์‹œํ•˜์‹ญ์‹œ์˜ค.

ํŒจ์น˜๋ฅผ "Not Applicable"๋กœ ํ‘œ์‹œํ•˜๋ ค๋ฉด, ์ฃผ์„ ์ฒ˜๋ฆฌ ๋œ ํŒจ์น˜ ๋ฒˆํ˜ธ ์˜†์— NA๋ฅผ version.c์— ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

๋น ๋ฅธ์‹œ์ž‘

  1. Neovim ์†Œ์Šค๋ฅผ ๋‚ด๋ ค๋ฐ›์Šต๋‹ˆ๋‹ค. (git clone https : // github.com / neovim / neovim.git)
  2. ./scripts/vim-patch.sh -l์„ ์‹คํ–‰ํ•˜์—ฌ ๋ˆ„๋ฝ๋œ Vim ํŒจ์น˜ ๋ชฉ๋ก์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
  3. ๋ชฉ๋ก์—์„œ ํŒจ์น˜๋ฅผ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค (์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ํŒจ์น˜). 7.4.123.
  4. ./scripts/vim-patch.sh -p 7.4.123์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.
    • ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ง€์นจ์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ถ€ ํŒจ์น˜๋Š” ๋‹ค๋ฅธ ํŒจ์น˜์— ์˜์กด ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชฉ๋ก์—์„œ oldest ํŒจ์น˜๋กœ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. (๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์•„์ง ์ž‘์—…์„ ์‹œ์ž‘ํ•˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค). ๊ด€๊ณ„์—†์ด ๋ณ‘ํ•ฉ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๊ฐ€์žฅ ๋†’์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์ถฉ๋Œ์ด ์ตœ์†Œํ™” ๋ฉ๋‹ˆ๋‹ค.

Pull ์š”์ฒญ

_ ์ฐธ๊ณ  : _ ** vim-patch.sh **๋Š” ์ด๋Ÿฌํ•œ ๋‹จ๊ณ„๋ฅผ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • pull ์š”์ฒญ * title *์€ vim-patch : 7.4.xxx (๊ณต๋ฐฑ ์—†์Œ)๋ฅผ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • * ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ *์—๋Š” ๋‹ค์Œ ๋‚ด์šฉ์ด ํฌํ•จ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.
    • ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํฌ๋งท ๋œ Vim ํŒจ์น˜ ๋ฒˆํ˜ธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ† ํฐ.

      vim-patch : 7.4.123 (๊ณต๋ฐฑ ์—†์Œ)
    • ์ž‘์„ฑ์ž๋ฅผ ํฌํ•จํ•œ ์›๋ณธ Vim ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€

** ๋ฆฌ๋ทฐ ์ž‘์„ฑ์ž : ** ๋Ÿฐํƒ€์ž„ / ํŒจ์น˜๋ฅผ ๊ฒ€ํ† ํ•˜๋Š” ํžŒํŠธ

N/A("Not Applicable") ํŒจ์น˜

๋งŽ์€ Vim ํŒจ์น˜๊ฐ€ Neovim์—๋Š” ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ •๊ธฐ์ ์œผ๋กœ version.c๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜์—ฌ ์ด๋ฅผ ๋‹จ์ผ pull ์š”์ฒญ๊ณผ ํ•จ๊ป˜ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. NA ํŒจ์น˜๋ฅผ ์ฐพ์œผ๋ฉด,

  • ๊ธฐ์กด์˜ "NA patches" pull ์š”์ฒญ์„ ์ฐพ๊ณ ,
  • ๋ช‡ ์ฃผ ๋™์•ˆ pull ์š”์ฒญ์„ ์œ ์ง€ํ•˜๋ ค๋Š” ์˜๋„๋กœ ์ƒˆ๋กœ์šด ๊ฒƒ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

pull ์š”์ฒญ์˜ ์ œ๋ชฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

version.c: mark NA ํŒจ์น˜

๊ทธ๋ž˜์„œ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด PR # 4634๋ฅผ ๋ณด์‹ญ์‹œ์˜ค.

์ฝ”๋“œ ์ฐจ์ด

๋‹ค์Œ ๊ธฐ๋Šฅ์ด ์ œ๊ฑฐ๋˜๊ฑฐ๋‚˜ ๋” ์ƒˆ๋กœ์šด ๋Œ€์•ˆ์„ ์œ„ํ•ด ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์ •๋ณด๋Š” memory.c Doxygen ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ง€์› ์ค‘๋‹จ๋˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋จ ๋Œ€์ฒด
vim_free xfree
malloc alloc lalloc xmalloc
calloc xcalloc
realloc vim_realloc xrealloc
mch_memmove memmove
vim_memset copy_chars copy_spaces memset
vim_strncpy strncpy xstrlcpy
vim_strcat strncat xstrlcat
vim_islower vim_isupper mb_islower mb_isupper
vim_tolower vim_toupper mb_tolower mb_toupper
Data type Format (Vim source) Portable format (Nvim source)
long long "%lld" "%" PRId64
size_t "%ld" "%zu"
  • ๋˜ํ•œ ๋ณด์‹ญ์‹œ์˜ค : https://github.com/neovim/neovim/pull/1729#discussion_r22423779
  • Vim์˜ ga_init2๋Š” ga_init์œผ๋กœ ์ด๋ฆ„์ด ๋ฐ”๋€Œ์—ˆ๊ณ  ์›๋ž˜์˜ ga_init์€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.
  • "์ด์ „ ์Šคํƒ€์ผ"์˜ Vim ํ…Œ์ŠคํŠธ (src / testdir / *. in)๋Š” ๋ฃจ์•„ ํ…Œ์ŠคํŠธ๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผ ํ•œ๋‹ค (# 1286์™€ # 1328). Checklist for migrating legacy tests๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
    • ๊ทธ๋Ÿฌ๋‚˜ "์ƒˆ๋กœ์šด ์Šคํƒ€์ผ"์˜ Vim ํ…Œ์ŠคํŠธ (src / testdir / *. vim)๋ฅผ Lua๋กœ ๋ณ€ํ™˜ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. "์ƒˆ๋กœ์šด ์Šคํƒ€์ผ"์˜ Vim ํ…Œ์ŠคํŠธ๋Š” ์ด์ „ ํ…Œ์ŠคํŠธ๋ณด๋‹ค ๋น ๋ฅด๋ฉฐ, ๋ณ€ํ™˜์€ ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์„ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ src / nvim / testdir / * .vim์— ๋ณต์‚ฌํ•˜๊ณ  src / nvim / testdir / Makefile์„ ๊ฐฑ์‹ ํ•˜์‹ญ์‹œ์˜ค.
  • enc_utf8๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ์กฐ๊ฑด์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ("true"์˜ ๊ฒฝ์šฐ๋งŒ ํ•ด๋‹น).

์„ค๋ช…์„œ ์ฐจ์ด์ 

๋‹ค์Œ์€ ๊ฐ€์ ธ์˜จ ๋ชจ๋“  ๋ฌธ์„œ์—์„œ ์ œ๊ฑฐ๋˜์–ด์•ผ ํ•˜๋ฉฐ ์ƒˆ ๋ฌธ์„œ์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • {in not Vi}: Vi์™€์˜ ํ˜ธํ™˜์„ฑ์— ๋Œ€ํ•ด์„œ๋Š” ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค (818f7ae ์ฐธ์กฐ).
  • '{Only when compiled with ...}` -๋Œ€๋‹ค์ˆ˜์˜ ๊ธฐ๋Šฅ์€ ์„ ํƒ ์‚ฌํ•ญ์ด ์•„๋‹™๋‹ˆ๋‹ค. (์†Œ๊ฐœ ์ฐธ์กฐ)
โš ๏ธ **GitHub.com Fallback** โš ๏ธ