diff --git a/7.3.787 b/7.3.787 new file mode 100644 index 0000000..0d705c7 --- /dev/null +++ b/7.3.787 @@ -0,0 +1,161 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.787 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.787 +Problem: With 'relativenumber' set it is not possible to see the absolute + line number. +Solution: For the cursor line show the absolute line number instead of a + zero. (Nazri Ramliy) +Files: src/screen.c + + +*** ../vim-7.3.786/src/screen.c 2012-12-05 16:10:21.000000000 +0100 +--- src/screen.c 2013-01-30 12:29:33.000000000 +0100 +*************** +*** 2319,2324 **** +--- 2319,2325 ---- + { + int w = number_width(wp); + long num; ++ char *fmt = "%*ld "; + + if (len > w + 1) + len = w + 1; +*************** +*** 2327,2336 **** + /* 'number' */ + num = (long)lnum; + else + /* 'relativenumber', don't use negative numbers */ + num = labs((long)get_cursor_rel_lnum(wp, lnum)); + +! sprintf((char *)buf, "%*ld ", w, num); + #ifdef FEAT_RIGHTLEFT + if (wp->w_p_rl) + /* the line number isn't reversed */ +--- 2328,2344 ---- + /* 'number' */ + num = (long)lnum; + else ++ { + /* 'relativenumber', don't use negative numbers */ + num = labs((long)get_cursor_rel_lnum(wp, lnum)); ++ if (num == 0) ++ { ++ num = lnum; ++ fmt = "%-*ld "; ++ } ++ } + +! sprintf((char *)buf, fmt, w, num); + #ifdef FEAT_RIGHTLEFT + if (wp->w_p_rl) + /* the line number isn't reversed */ +*************** +*** 3484,3498 **** + ) + { + long num; + + if (wp->w_p_nu) + /* 'number' */ + num = (long)lnum; + else + /* 'relativenumber', don't use negative numbers */ + num = labs((long)get_cursor_rel_lnum(wp, lnum)); + +! sprintf((char *)extra, "%*ld ", + number_width(wp), num); + if (wp->w_skipcol > 0) + for (p_extra = extra; *p_extra == ' '; ++p_extra) +--- 3492,3514 ---- + ) + { + long num; ++ char *fmt = "%*ld "; + + if (wp->w_p_nu) + /* 'number' */ + num = (long)lnum; + else ++ { + /* 'relativenumber', don't use negative numbers */ + num = labs((long)get_cursor_rel_lnum(wp, lnum)); ++ if (num == 0) ++ { ++ num = lnum; ++ fmt = "%-*ld "; ++ } ++ } + +! sprintf((char *)extra, fmt, + number_width(wp), num); + if (wp->w_skipcol > 0) + for (p_extra = extra; *p_extra == ' '; ++p_extra) +*************** +*** 3513,3519 **** + * the current line differently. + * TODO: Can we use CursorLine instead of CursorLineNr + * when CursorLineNr isn't set? */ +! if (wp->w_p_cul && lnum == wp->w_cursor.lnum) + char_attr = hl_attr(HLF_CLN); + #endif + } +--- 3529,3536 ---- + * the current line differently. + * TODO: Can we use CursorLine instead of CursorLineNr + * when CursorLineNr isn't set? */ +! if ((wp->w_p_cul || wp->w_p_rnu) +! && lnum == wp->w_cursor.lnum) + char_attr = hl_attr(HLF_CLN); + #endif + } +*************** +*** 10238,10249 **** + int n; + linenr_T lnum; + +! if (wp->w_p_nu) +! /* 'number' */ +! lnum = wp->w_buffer->b_ml.ml_line_count; +! else +! /* 'relativenumber' */ +! lnum = wp->w_height; + + if (lnum == wp->w_nrwidth_line_count) + return wp->w_nrwidth_width; +--- 10255,10261 ---- + int n; + linenr_T lnum; + +! lnum = wp->w_buffer->b_ml.ml_line_count; + + if (lnum == wp->w_nrwidth_line_count) + return wp->w_nrwidth_width; +*** ../vim-7.3.786/src/version.c 2013-01-30 11:44:33.000000000 +0100 +--- src/version.c 2013-01-30 12:25:10.000000000 +0100 +*************** +*** 727,728 **** +--- 727,730 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 787, + /**/ + +-- +ARTHUR: A scratch? Your arm's off! +BLACK KNIGHT: No, it isn't. +ARTHUR: Well, what's that then? +BLACK KNIGHT: I've had worse. + The Quest for the Holy Grail (Monty Python) + + /// 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 ///