To: vim_dev@googlegroups.com Subject: Patch 7.4.1612 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.1612 (after 7.4.1611) Problem: Can't build with small features. Solution: Move code and #ifdefs. Files: src/ex_getln.c *** ../vim-7.4.1611/src/ex_getln.c 2016-03-19 22:11:47.420675007 +0100 --- src/ex_getln.c 2016-03-19 22:27:35.506474802 +0100 *************** *** 5653,5748 **** return history[histype][hisidx[histype]].hisnum; } - static struct cmdline_info *get_ccline_ptr(void); - - /* - * Get pointer to the command line info to use. cmdline_paste() may clear - * ccline and put the previous value in prev_ccline. - */ - static struct cmdline_info * - get_ccline_ptr(void) - { - if ((State & CMDLINE) == 0) - return NULL; - if (ccline.cmdbuff != NULL) - return &ccline; - if (prev_ccline_used && prev_ccline.cmdbuff != NULL) - return &prev_ccline; - return NULL; - } - - /* - * Get the current command line in allocated memory. - * Only works when the command line is being edited. - * Returns NULL when something is wrong. - */ - char_u * - get_cmdline_str(void) - { - struct cmdline_info *p = get_ccline_ptr(); - - if (p == NULL) - return NULL; - return vim_strnsave(p->cmdbuff, p->cmdlen); - } - - /* - * Get the current command line position, counted in bytes. - * Zero is the first position. - * Only works when the command line is being edited. - * Returns -1 when something is wrong. - */ - int - get_cmdline_pos(void) - { - struct cmdline_info *p = get_ccline_ptr(); - - if (p == NULL) - return -1; - return p->cmdpos; - } - - /* - * Set the command line byte position to "pos". Zero is the first position. - * Only works when the command line is being edited. - * Returns 1 when failed, 0 when OK. - */ - int - set_cmdline_pos( - int pos) - { - struct cmdline_info *p = get_ccline_ptr(); - - if (p == NULL) - return 1; - - /* The position is not set directly but after CTRL-\ e or CTRL-R = has - * changed the command line. */ - if (pos < 0) - new_cmdpos = 0; - else - new_cmdpos = pos; - return 0; - } - - /* - * Get the current command-line type. - * Returns ':' or '/' or '?' or '@' or '>' or '-' - * Only works when the command line is being edited. - * Returns NUL when something is wrong. - */ - int - get_cmdline_type(void) - { - struct cmdline_info *p = get_ccline_ptr(); - - if (p == NULL) - return NUL; - if (p->cmdfirstc == NUL) - return (p->input_fn) ? '@' : '-'; - return p->cmdfirstc; - } - /* * Calculate history index from a number: * num > 0: seen as identifying number of a history entry --- 5653,5658 ---- *************** *** 5951,5956 **** --- 5861,5958 ---- #endif /* FEAT_CMDHIST */ + #if defined(FEAT_EVAL) || defined(PROTO) + /* + * Get pointer to the command line info to use. cmdline_paste() may clear + * ccline and put the previous value in prev_ccline. + */ + static struct cmdline_info * + get_ccline_ptr(void) + { + if ((State & CMDLINE) == 0) + return NULL; + if (ccline.cmdbuff != NULL) + return &ccline; + if (prev_ccline_used && prev_ccline.cmdbuff != NULL) + return &prev_ccline; + return NULL; + } + + /* + * Get the current command line in allocated memory. + * Only works when the command line is being edited. + * Returns NULL when something is wrong. + */ + char_u * + get_cmdline_str(void) + { + struct cmdline_info *p = get_ccline_ptr(); + + if (p == NULL) + return NULL; + return vim_strnsave(p->cmdbuff, p->cmdlen); + } + + /* + * Get the current command line position, counted in bytes. + * Zero is the first position. + * Only works when the command line is being edited. + * Returns -1 when something is wrong. + */ + int + get_cmdline_pos(void) + { + struct cmdline_info *p = get_ccline_ptr(); + + if (p == NULL) + return -1; + return p->cmdpos; + } + + /* + * Set the command line byte position to "pos". Zero is the first position. + * Only works when the command line is being edited. + * Returns 1 when failed, 0 when OK. + */ + int + set_cmdline_pos( + int pos) + { + struct cmdline_info *p = get_ccline_ptr(); + + if (p == NULL) + return 1; + + /* The position is not set directly but after CTRL-\ e or CTRL-R = has + * changed the command line. */ + if (pos < 0) + new_cmdpos = 0; + else + new_cmdpos = pos; + return 0; + } + #endif + + #if defined(FEAT_EVAL) || defined(FEAT_CMDWIN) || defined(PROTO) + /* + * Get the current command-line type. + * Returns ':' or '/' or '?' or '@' or '>' or '-' + * Only works when the command line is being edited. + * Returns NUL when something is wrong. + */ + int + get_cmdline_type(void) + { + struct cmdline_info *p = get_ccline_ptr(); + + if (p == NULL) + return NUL; + if (p->cmdfirstc == NUL) + return (p->input_fn) ? '@' : '-'; + return p->cmdfirstc; + } + #endif + #if defined(FEAT_QUICKFIX) || defined(FEAT_CMDHIST) || defined(PROTO) /* * Get indices "num1,num2" that specify a range within a list (not a range of *** ../vim-7.4.1611/src/version.c 2016-03-19 22:11:47.440674791 +0100 --- src/version.c 2016-03-19 22:28:46.233715273 +0100 *************** *** 750,751 **** --- 750,753 ---- { /* Add new patch number below this line */ + /**/ + 1612, /**/ -- From "know your smileys": :-)-O Smiling doctor with stethoscope /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///