netrw
Hello: I had two Windows machines; the big one's motherboard died and the other lost windows during an attempt to update (just the) linux partition (it had been a dual boot). So, I'd appreciate some Windows developers help to improve netrw. I've got the latest development copy of netrw on my website (http://www.drchip.org/astronaut/vim/index.html#NETRW v165a). Regards, Chip Campbell -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: netrw
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 On 22-Jan-2019 10:00 +0100, Charles E Campbell wrote: > Hello: > > I had two Windows machines; the big one's motherboard died and the > other lost windows during an attempt to update (just the) linux > partition (it had been a dual boot). > > So, I'd appreciate some Windows developers help to improve netrw. > I've got the latest development copy of netrw on my website > (http://www.drchip.org/astronaut/vim/index.html#NETRW v165a). Hello Charles, First, thank you for keeping up your plugin maintenance over the years (it's probably been decades by now :-) Assuming that you've just lost the Windows hardware, but still have license(s), running Windows in a small VM on Linux can be a good alternative. VirtualBox is free, and spinning up a small Windows instance on demand doesn't take too many resources. (Even my 6 year-old laptop can do that.) I suggest that because solely relying on co-developers for platform support is hard, at least in my experience. That notwithstanding, having other people join in is really helpful. For that, I would recommend to move your plugin development to GitHub (or alternatives, but as it's the top site and Vim and many plugins are there, that's a compelling argument). It may initially create more work (you need to adapt your workflow, people will start submitting all sorts of issues and problems), but it's far superior a process than putting a dev snapshot on a website and emailing around patches. I hope you'll find a setup that suits you well. Keep up the good work! - -- regards, ingo - -- -- Ingo Karkat -- /^-- /^-- /^-- /^-- /^-- http://ingo-karkat.de/ -- -- https://www.vim.org/account/profile.php?user_id=9713 -- -BEGIN PGP SIGNATURE- Version: GnuPG v2 iQEcBAEBCAAGBQJcRuzGAAoJEA7ziXlAzQ/v2EYH/jOOUe2tQCTTjYvAa8qL0zEH +R2GtmZm6gWRSHaU5JZufyFlPLDhG/hvwd92eEa6EyBNOnpdiCsb8rkVm4pe0MgH E0TwSiiijsCNlB4sAWuyPS2OIGOoHf0pmY/5Es9NmMbfrayX4dgXSxCS2jWluW/C lq9gOlrOgIns8rdhtWVl3mnNhTXqKQfG5wl7Z7LMH1kfsGnbgMe/gRwfpcDexDdY hsRUhbJqHOjBcByuSpndjH8+Nr3/PPqQ8slTdzTvoRbCjVcgjYlCHQPyPUz31Qmh C1I76i4yKxqUrsd1+ZYeTt3X0Q51ZCzIQ7/xolc+pScZoRrblW9+Yd0X7c5oJBM= =lE94 -END PGP SIGNATURE- -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: ex -c compatibility/workaround not documented in the ex man page
On Monday, January 21, 2019 at 4:33:44 PM UTC-6, Tony Mechelynck wrote: > On Mon, Jan 21, 2019 at 9:30 PM Kevin Bulgrien wrote: > > > > > It seems unfortunate for gvim's ex man page not to document use of the > > > vertical bar delimiter in lieu of multiple -c arguments since it does > > > mention that not all implementations support use of multiple -c > > > arguments. > > > > Correction: The man page does document the behavior, but only in the > > EXTENDED DESCRIPTION of Command Line Parsing in ex, section 6, which > > takes a lot of digging to find. > > > > Regards, > > > > Kevin Bulgrien > > The use of the vertical bar to separate ex-commands given together is > not specific to the -c command-line argument. It is documented at > ":help :bar", in section 3 "Ex command-lines" of Vim's cmdline.txt > help file. It is extremely useful to enter a complete if..endif block, > e.g. as an autocommand or (with to represent the vertical bar) > in the {rhs} of a mapping. > > Best regards, > Tony. Thanks for the added information about this feature that eluded me. I didn't carefully digest the parsing information to determine where all it might be of relevance, though I did rather assume it was applicable in more places than one. Brief mention near the -c description still seems as though it could be helpful, even if only to make more evident a way to condense a long series of commands. -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [patch] Refactor code for putting ":tabnew" commands in session scripts
Jason Franklin wrote: > This patch just simplifies the code for outputting the > ":tabnew" commands that a session script should invoke. > Currently, the code is a bit messy and was easy to > simplify: > > > diff --git a/src/ex_docmd.c b/src/ex_docmd.c > index 8a9b2f4bf..91314ec2a 100644 > --- a/src/ex_docmd.c > +++ b/src/ex_docmd.c > @@ -11401,26 +11401,17 @@ makeopens( > tab_topframe = topframe; > if ((ssop_flags & SSOP_TABPAGES)) > { > - int num_tabs; > + tabpage_T *tp; > > - /* > - * Similar to ses_win_rec() below, populate the tab pages first so > - * later local options won't be copied to the new tabs. > - */ > - for (tabnr = 1; ; ++tabnr) > + // This is similar to "ses_win_rec()" below. Populate the tab pages > + // first so that local options won't be copied to new tabs later. > + FOR_ALL_TABPAGES(tp) > { > - tabpage_T *tp = find_tabpage(tabnr); > - > - if (tp == NULL) /* done all tab pages */ > - break; > - > - if (tabnr > 1 && put_line(fd, "tabnew") == FAIL) > + if (tp->tp_next != NULL && put_line(fd, "tabnew") == FAIL) > return FAIL; > } > > - num_tabs = tabnr - 1; > - if (num_tabs > 1 && (fprintf(fd, "tabnext -%d", num_tabs - 1) < 0 > -|| put_eol(fd) == FAIL)) > + if (first_tabpage->tp_next != NULL && put_line(fd, "tabnext 1") == FAIL) > return FAIL; > } > for (tabnr = 1; ; ++tabnr) > > > All of the existing tests for mksession still pass. > > Let me know if anything looks amiss. Yeah, that was convoluted code. It can be simplified a bit more by using "tabrewind" at the end. -- This is an airconditioned room, do not open Windows. /// Bram Moolenaar -- b...@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/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Patch 8.1.0790
Patch 8.1.0790 Problem:Code for creating tabpages in session is too complex. Solution: Simplify the code. (Jason Franklin) Files: src/ex_docmd.c *** ../vim-8.1.0789/src/ex_docmd.c 2019-01-21 23:03:45.718447626 +0100 --- src/ex_docmd.c 2019-01-22 21:23:27.735578930 +0100 *** *** 11401,11426 tab_topframe = topframe; if ((ssop_flags & SSOP_TABPAGES)) { ! int num_tabs; ! /* !* Similar to ses_win_rec() below, populate the tab pages first so !* later local options won't be copied to the new tabs. !*/ ! for (tabnr = 1; ; ++tabnr) ! { ! tabpage_T *tp = find_tabpage(tabnr); ! ! if (tp == NULL) /* done all tab pages */ ! break; ! ! if (tabnr > 1 && put_line(fd, "tabnew") == FAIL) return FAIL; ! } ! ! num_tabs = tabnr - 1; ! if (num_tabs > 1 && (fprintf(fd, "tabnext -%d", num_tabs - 1) < 0 ! || put_eol(fd) == FAIL)) return FAIL; } for (tabnr = 1; ; ++tabnr) --- 11401,11414 tab_topframe = topframe; if ((ssop_flags & SSOP_TABPAGES)) { ! tabpage_T *tp; ! // Similar to ses_win_rec() below, populate the tab pages first so ! // later local options won't be copied to the new tabs. ! FOR_ALL_TABPAGES(tp) ! if (tp->tp_next != NULL && put_line(fd, "tabnew") == FAIL) return FAIL; ! if (first_tabpage->tp_next != NULL && put_line(fd, "tabrewind") == FAIL) return FAIL; } for (tabnr = 1; ; ++tabnr) *** ../vim-8.1.0789/src/version.c 2019-01-21 23:03:45.718447626 +0100 --- src/version.c 2019-01-22 21:25:49.030606634 +0100 *** *** 793,794 --- 793,796 { /* Add new patch number below this line */ + /**/ + 790, /**/ -- The software said it requires Windows 95 or better, so I installed Linux. /// Bram Moolenaar -- b...@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/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Patch 8.1.0791
Patch 8.1.0791 Problem:A few compiler warnings on VMS. Solution: Remove type cast. Adjust #ifdef. (Zoltan Arpadffy) Files: src/os_unix.c, src/proto.h *** ../vim-8.1.0790/src/os_unix.c 2019-01-20 23:43:54.314830624 +0100 --- src/os_unix.c 2019-01-22 21:34:32.826950388 +0100 *** *** 1935,1941 alarm(0); signal(SIGALRM, (RETSIGTYPE (*)())sig_save); if (p_verbose > 0 && sig_alarm_called) ! verb_msg((char_u *)_("Opening the X display timed out")); #endif if (x11_display != NULL) { --- 1935,1941 alarm(0); signal(SIGALRM, (RETSIGTYPE (*)())sig_save); if (p_verbose > 0 && sig_alarm_called) ! verb_msg(_("Opening the X display timed out")); #endif if (x11_display != NULL) { *** ../vim-8.1.0790/src/proto.h 2019-01-17 15:43:21.765878343 +0100 --- src/proto.h 2019-01-22 21:35:47.226426974 +0100 *** *** 256,262 # endif # if defined(FEAT_GUI) || defined(FEAT_JOB_CHANNEL) ! # if defined(UNIX) || defined(MACOS_X) # include "pty.pro" # endif # endif --- 256,262 # endif # if defined(FEAT_GUI) || defined(FEAT_JOB_CHANNEL) ! # if defined(UNIX) || defined(MACOS_X) || defined(VMS) # include "pty.pro" # endif # endif *** ../vim-8.1.0790/src/version.c 2019-01-22 21:27:08.890053701 +0100 --- src/version.c 2019-01-22 21:45:29.605732377 +0100 *** *** 793,794 --- 793,796 { /* Add new patch number below this line */ + /**/ + 791, /**/ -- The greatest lies of all time: (1) The check is in the mail. (2) We have a really challenging assignment for you. (3) I love you. (4) All bugs have been fixed. (5) This won't hurt a bit. (6) Honey, I just need to debug this program and be home in 5 minutes. (7) I have just sent you an e-mail about that. (8) Of course I'll respect you in the morning. (9) I'm from the government, and I'm here to help you. /// Bram Moolenaar -- b...@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/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Patch 8.1.0792
Patch 8.1.0792 Problem:Popup menu is displayed on top of the cmdline window if it is opened from Insert completion. (Bjorn Linse) Solution: Remove the popup menu. Restore the cursor position. (closes #3838) Files: src/edit.c, src/ex_getln.c *** ../vim-8.1.0791/src/edit.c 2019-01-19 17:43:03.401449251 +0100 --- src/edit.c 2019-01-22 22:04:03.005446245 +0100 *** *** 8537,8542 --- 8537,8543 ++no_u_sync; if (regname == '=') { + pos_T curpos = curwin->w_cursor; # ifdef HAVE_INPUT_METHOD int im_on = im_get_status(); # endif *** *** 8545,8552 u_sync_once = 2; regname = get_expr_register(); # ifdef HAVE_INPUT_METHOD ! /* Restore the Input Method. */ if (im_on) im_set_active(TRUE); # endif --- 8546,8557 u_sync_once = 2; regname = get_expr_register(); + + // Cursor may be moved back a column. + curwin->w_cursor = curpos; + check_cursor(); # ifdef HAVE_INPUT_METHOD ! // Restore the Input Method. if (im_on) im_set_active(TRUE); # endif *** ../vim-8.1.0791/src/ex_getln.c 2019-01-19 17:43:03.409449198 +0100 --- src/ex_getln.c 2019-01-22 21:52:42.526460299 +0100 *** *** 7268,7273 --- 7268,7277 /* Don't execute autocommands while creating the window. */ block_autocmds(); + // When using completion in Insert mode with = one can open the + // command line window, but we don't want the popup menu then. + pum_undisplay(); + /* don't use a new tab page */ cmdmod.tab = 0; cmdmod.noswapfile = 1; *** ../vim-8.1.0791/src/version.c 2019-01-22 21:45:36.553678901 +0100 --- src/version.c 2019-01-22 22:07:18.600017151 +0100 *** *** 793,794 --- 793,796 { /* Add new patch number below this line */ + /**/ + 792, /**/ -- FIRST HEAD: Oh! quick! get the sword out I want to cut his head off. THIRD HEAD: Oh, cut your own head off. SECOND HEAD: Yes - do us all a favour. "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD /// Bram Moolenaar -- b...@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/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Patch 8.1.0793
Patch 8.1.0793 Problem:Incorrect error messages for functions that now take a Blob argument. Solution: Adjust the error messages. (Dominique Pelle, closes #3846) Files: runtime/doc/eval.txt, src/evalfunc.c, src/globals.h, src/testdir/test_blob.vim, src/testdir/test_listdict.vim *** ../vim-8.1.0792/runtime/doc/eval.txt2019-01-15 22:51:35.82001 +0100 --- runtime/doc/eval.txt2019-01-22 22:13:51.087503416 +0100 *** *** 38,44 1. Variables *variables* 1.1 Variable types ~ ! *E712* There are nine types of variables: NumberA 32 or 64 bit signed number. |expr-number| *Number* --- 38,44 1. Variables *variables* 1.1 Variable types ~ ! *E712* *E896* *E897* *E898* There are nine types of variables: NumberA 32 or 64 bit signed number. |expr-number| *Number* *** *** 131,138 *E745* *E728* *E703* *E729* *E730* *E731* *E908* *E910* *E913* *E974* *E975* *E976* ! List, Dictionary, Funcref, Job, Channel and Blob types are not automatically ! converted. *E805* *E806* *E808* When mixing Number and Float the Number is converted to Float. Otherwise --- 131,138 *E745* *E728* *E703* *E729* *E730* *E731* *E908* *E910* *E913* *E974* *E975* *E976* ! |List|, |Dictionary|, |Funcref|, |Job|, |Channel| and |Blob| types are not ! automatically converted. *E805* *E806* *E808* When mixing Number and Float the Number is converted to Float. Otherwise *** *** 633,638 --- 633,641 A Blob can be created with a |blob-literal|: > :let b = 0zFF00ED015DAF + Dots can be inserted between bytes (pair of hex characters) for readability, + they don't change the value: > + :let b = 0zFF00.ED01.5DAF A blob can be read from a file with |readfile()| passing the {type} argument set to "B", for example: > *** *** 673,678 --- 676,682 A part of the Blob can be obtained by specifying the first and last index, separated by a colon in square brackets: > :let myblob = 0z00112233 + :let shortblob = myblob[1:2]" get 0z1122 :let shortblob = myblob[2:-1] " get 0z2233 Omitting the first index is similar to zero. Omitting the last index is *** *** 681,687 :let shortblob = myblob[2:2]" Blob with one byte: 0z22 :let otherblob = myblob[:] " make a copy of the Blob ! If the first index is beyond the last byte of the Blob or the second byte is before the first byte, the result is an empty list. There is no error message. --- 685,691 :let shortblob = myblob[2:2]" Blob with one byte: 0z22 :let otherblob = myblob[:] " make a copy of the Blob ! If the first index is beyond the last byte of the Blob or the second index is before the first byte, the result is an empty list. There is no error message. *** *** 700,711 To change a sequence of bytes the [:] notation can be used: > let blob[1:3] = 0z445566 ! The length of the replaced bytes much be exactly the same as the value provided. *E972* To change part of a blob you can specify the first and last byte to be ! modified. The value must at least have the number of bytes in the range: > ! :let blob[3:5] = [3, 4, 5] You can also use the functions |add()|, |remove()| and |insert()|. --- 704,715 To change a sequence of bytes the [:] notation can be used: > let blob[1:3] = 0z445566 ! The length of the replaced bytes must be exactly the same as the value provided. *E972* To change part of a blob you can specify the first and last byte to be ! modified. The value must have the same number of bytes in the range: > ! :let blob[3:5] = 0z334455 You can also use the functions |add()|, |remove()| and |insert()|. *** *** 734,740 :echo blob is blob3 < 0 ! Making a copy of a list is done with the |copy()| function. Using [:] also works, as explained above. --- 738,744 :echo blob is blob3 < 0 ! Making a copy of a Blob is done with the |copy()| function. Using [:] also works, as explained above. *** *** 793,799 expr5 isnot expr5 different |List| instance |expr5| expr6 ! expr6 + expr6 .. number addition or list concatenation expr6 - expr6 .. number subtraction expr6 . expr6 .. string concatenation --- 797,803 expr5 isnot expr5 different |List| instance
Patch 8.1.0794
Patch 8.1.0794 Problem:White space before " -Ntabmove" causes problems. Solution: Skip whitespace. (Ozaki Kiichi, closes #3841) Files: src/ex_docmd.c, src/testdir/test_tabpage.vim *** ../vim-8.1.0793/src/ex_docmd.c 2019-01-22 21:27:08.890053701 +0100 --- src/ex_docmd.c 2019-01-22 22:38:50.080337086 +0100 *** *** 7588,7594 else { tab_number = eap->line2; ! if (!unaccept_arg0 && **eap->cmdlinep == '-') { --tab_number; if (tab_number < unaccept_arg0) --- 7588,7594 else { tab_number = eap->line2; ! if (!unaccept_arg0 && *skipwhite(*eap->cmdlinep) == '-') { --tab_number; if (tab_number < unaccept_arg0) *** ../vim-8.1.0793/src/testdir/test_tabpage.vim2018-08-07 13:14:05.640508522 +0200 --- src/testdir/test_tabpage.vim2019-01-22 22:38:01.812765825 +0100 *** *** 105,110 --- 105,118 call assert_equal(4, tabpagenr()) 7tabmove 5 call assert_equal(5, tabpagenr()) + -tabmove + call assert_equal(4, tabpagenr()) + +tabmove + call assert_equal(5, tabpagenr()) + -2tabmove + call assert_equal(3, tabpagenr()) + +3tabmove + call assert_equal(6, tabpagenr()) " The following are a no-op norm! 2gt *** ../vim-8.1.0793/src/version.c 2019-01-22 22:20:13.374961397 +0100 --- src/version.c 2019-01-22 22:41:32.314903703 +0100 *** *** 793,794 --- 793,796 { /* Add new patch number below this line */ + /**/ + 794, /**/ -- Facepalm reply #3: "I had a great time in Manhattan" "I thought you were going to New York?" /// Bram Moolenaar -- b...@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/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Patch 8.1.0795
Patch 8.1.0795 (after 8.1.0792) Problem:Cannot build without popup menu. Solution: Add #ifdef Files: src/ex_getln.c *** ../vim-8.1.0794/src/ex_getln.c 2019-01-22 22:08:05.231676850 +0100 --- src/ex_getln.c 2019-01-22 22:53:10.740300457 +0100 *** *** 7268,7276 --- 7268,7278 /* Don't execute autocommands while creating the window. */ block_autocmds(); + #if defined(FEAT_INS_EXPAND) // When using completion in Insert mode with = one can open the // command line window, but we don't want the popup menu then. pum_undisplay(); + #endif /* don't use a new tab page */ cmdmod.tab = 0; *** ../vim-8.1.0794/src/version.c 2019-01-22 22:41:38.362850472 +0100 --- src/version.c 2019-01-22 22:47:42.363409937 +0100 *** *** 793,794 --- 793,796 { /* Add new patch number below this line */ + /**/ + 795, /**/ -- Facepalm statement #4: "3000 year old graves? That's not possible, it's only 2014!" /// Bram Moolenaar -- b...@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/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Patch 8.1.0796
Patch 8.1.0796 Problem:MS-Windows 7: problem with named pipe on channel. Solution: Put back the disconnect/connect calls. (Yasuhiro Matsumoto, closes #3833) Files: src/channel.c, src/testdir/test_terminal.vim *** ../vim-8.1.0795/src/channel.c 2019-01-20 15:30:36.881328770 +0100 --- src/channel.c 2019-01-22 22:44:08.765530220 +0100 *** *** 3181,3187 if (r && nread > 0) return CW_READY; ! if (r == 0) return CW_ERROR; /* perhaps write some buffer lines */ --- 3181,3193 if (r && nread > 0) return CW_READY; ! ! if (channel->ch_named_pipe) ! { ! DisconnectNamedPipe((HANDLE)fd); ! ConnectNamedPipe((HANDLE)fd, NULL); ! } ! else if (r == 0) return CW_ERROR; /* perhaps write some buffer lines */ *** *** 3813,3819 --- 3819,3834 if (part == PART_SOCK) res = sock_write(fd, (char *)buf, len); else + { res = fd_write(fd, (char *)buf, len); + #ifdef WIN32 + if (channel->ch_named_pipe && res < 0) + { + DisconnectNamedPipe((HANDLE)fd); + ConnectNamedPipe((HANDLE)fd, NULL); + } + #endif + } if (res < 0 && (errno == EWOULDBLOCK #ifdef EAGAIN || errno == EAGAIN *** ../vim-8.1.0795/src/testdir/test_terminal.vim 2019-01-20 18:25:50.313911236 +0100 --- src/testdir/test_terminal.vim 2019-01-22 22:46:17.424241336 +0100 *** *** 644,651 func Test_terminal_no_cmd() " Does not work on Mac. ! " Todo: make this work on Win32 again ! if has('mac') || has('win32') return endif let buf = term_start('NONE', {}) --- 644,650 func Test_terminal_no_cmd() " Does not work on Mac. ! if has('mac') return endif let buf = term_start('NONE', {}) *** ../vim-8.1.0795/src/version.c 2019-01-22 22:54:56.215326924 +0100 --- src/version.c 2019-01-22 23:00:59.380030846 +0100 *** *** 793,794 --- 793,796 { /* Add new patch number below this line */ + /**/ + 796, /**/ -- Facepalm statement #5: "Petrol getting more expensive? Not for me, I'm always tanking for 20 dollars" /// Bram Moolenaar -- b...@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/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[patch] more doc updates for Blobs
Hi Attached patch contains more doc updates for Blobs. Behavior of :for loop, "is" and "isnot" were not documented for Blobs. Regards Dominique -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 325676dbd..30f20b76b 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -662,6 +662,15 @@ is not available it returns -1 or the default value you specify: > :echo get(myblob, idx, 999) +Blob iteration ~ + +The |:for| loop executes commands for each byte a Blob. A variable is set +to each byte in the Blob. Example: > + :for byte in 0z010203 + : call Doit(byte) + :endfor + + Blob concatenation ~ Two blobs can be concatenated with the "+" operator: > @@ -793,8 +802,9 @@ Expression syntax summary, from least to most significant: etc. As above, append ? for ignoring case, # for matching case - expr5 is expr5 same |List| instance - expr5 isnot expr5 different |List| instance + expr5 is expr5 same |List|, |Dictionary| or |Blob| instance + expr5 isnot expr5 different |List|, |Dictionary| or |Blob| +instance |expr5| expr6 expr6 + expr6 .. number addition, list or blob concatenation @@ -962,12 +972,12 @@ Dictionary and arguments, use |get()| to get the function name: > if get(Part1, 'name') == get(Part2, 'name') " Part1 and Part2 refer to the same function -When using "is" or "isnot" with a |List| or a |Dictionary| this checks if the -expressions are referring to the same |List| or |Dictionary| instance. A copy -of a |List| is different from the original |List|. When using "is" without -a |List| or a |Dictionary| it is equivalent to using "equal", using "isnot" -equivalent to using "not equal". Except that a different type means the -values are different: > +Using "is" or "isnot" with a |List|, |Dictionary| or |Blob| checks whether +the expressions are referring to the same |List|, |Dictionary| or |Blob| +instance. A copy of a |List| is different from the original |List|. When +using "is" without a |List|, |Dictionary| or |Blob|, it is equivalent to +using "equal", using "isnot" equivalent to using "not equal". Except that +a different type means the values are different: > echo 4 == '4' 1 echo 4 is '4' @@ -1012,16 +1022,16 @@ can be matched like an ordinary character. Examples: expr5 and expr6 *expr5* *expr6* --- -expr6 + expr6 .. Number addition or |List| concatenation *expr-+* -expr6 - expr6 .. Number subtraction *expr--* -expr6 . expr6 .. String concatenation *expr-.* +expr6 + expr6 Number addition, |List| or |Blob| concatenation *expr-+* +expr6 - expr6 Number subtraction*expr--* +expr6 . expr6 String concatenation*expr-.* For |Lists| only "+" is possible and then both expr6 must be a list. The result is a new list with the two lists Concatenated. -expr7 * expr7 .. Number multiplication *expr-star* -expr7 / expr7 .. Number division*expr-/* -expr7 % expr7 .. Number modulo*expr-%* +expr7 * expr7 Number multiplication*expr-star* +expr7 / expr7 Number division *expr-/* +expr7 % expr7 Number modulo *expr-%* For all, except ".", Strings are converted to Numbers. For bitwise operators see |and()|, |or()| and |xor()|. @@ -11044,28 +11054,37 @@ This does NOT work: > NOTE: The ":append" and ":insert" commands don't work properly inside a ":while" and ":for" loop. -:for {var} in {list} *:for* *E690* *E732* +:for {var} in {object} *:for* *E690* *E732* :endfo[r] *:endfo* *:endfor* Repeat the commands between ":for" and ":endfor" for - each item in {list}. Variable {var} is set to the - value of each item. - When an error is detected for a command inside the - loop, execution continues after the "endfor". - Changing {list} inside the loop affects what items are - used. Make a copy if this is unwanted: > + each item in {object}. {object} can be a |List| or + a |Blob|. Variable {var} is set to the value of each + item. When an error is detected for a command inside + the loop, execution continues after the "endfor". + Changing {object} inside the loop affects what items + are used. Make a copy if this is unwanted: > :for item in copy(mylist) -< When not making a copy, Vim stores a reference to the - next item in the list, before executing the commands - with the current item. Thus the current item can be - removed without effect. Removing any later item means - it will not be found. Thus the following example - works (an inefficient wa
Re: [patch] more doc updates for Blobs
On Tuesday, January 22, 2019 at 11:35:50 PM UTC+1, Dominique Pelle wrote: > Hi > > Attached patch contains more doc updates > for Blobs. Behavior of :for loop, "is" and > "isnot" were not documented for Blobs. > > Regards > Dominique Hi, I've noticed two small typos: > +The |:for| loop executes commands for each byte a Blob. A variable is set byte of a Blob. > + When {object} is a |Blob|, Vim stores and increment the and increments the Best Regards, Tom -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: netrw
+1 to move to GitHub, Or include netrw into Vim core. DrChip, Thanks for your maintaining of netrw. But if you want to get a lot of contributors, you've better to provide the way that can be easily used and easily updated for users. ex: GitHub. And I feel current source code of netrw is not modern. And some behavior is flacky (Unfortunately, I'm using another file manager). The differences of OSs (or commands) should be transparent using function instead using "if has('win32')" in many places. If possibly, should be tested. I feel many codes of netrw should be fixed be and clean-up. But sending/receiving patch files via e-mail make developments slowly. For that I also feed you've better to switch to development using git. mattn On Tuesday, January 22, 2019 at 7:13:37 PM UTC+9, Ingo Karkat wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA256 > > On 22-Jan-2019 10:00 +0100, Charles E Campbell wrote: > > > Hello: > > > > I had two Windows machines; the big one's motherboard died and the > > other lost windows during an attempt to update (just the) linux > > partition (it had been a dual boot). > > > > So, I'd appreciate some Windows developers help to improve netrw. > > I've got the latest development copy of netrw on my website > > (http://www.drchip.org/astronaut/vim/index.html#NETRW v165a). > > Hello Charles, > > First, thank you for keeping up your plugin maintenance over the years > (it's probably been decades by now :-) > > Assuming that you've just lost the Windows hardware, but still have > license(s), running Windows in a small VM on Linux can be a good > alternative. VirtualBox is free, and spinning up a small Windows > instance on demand doesn't take too many resources. (Even my 6 > year-old laptop can do that.) > > I suggest that because solely relying on co-developers for platform > support is hard, at least in my experience. > > That notwithstanding, having other people join in is really helpful. > For that, I would recommend to move your plugin development to GitHub > (or alternatives, but as it's the top site and Vim and many plugins > are there, that's a compelling argument). It may initially create more > work (you need to adapt your workflow, people will start submitting > all sorts of issues and problems), but it's far superior a process > than putting a dev snapshot on a website and emailing around patches. > > I hope you'll find a setup that suits you well. Keep up the good work! > > - -- regards, ingo > - -- > -- Ingo Karkat -- /^-- /^-- /^-- /^-- /^-- http://ingo-karkat.de/ -- > -- https://www.vim.org/account/profile.php?user_id=9713 -- > -BEGIN PGP SIGNATURE- > Version: GnuPG v2 > > iQEcBAEBCAAGBQJcRuzGAAoJEA7ziXlAzQ/v2EYH/jOOUe2tQCTTjYvAa8qL0zEH > +R2GtmZm6gWRSHaU5JZufyFlPLDhG/hvwd92eEa6EyBNOnpdiCsb8rkVm4pe0MgH > E0TwSiiijsCNlB4sAWuyPS2OIGOoHf0pmY/5Es9NmMbfrayX4dgXSxCS2jWluW/C > lq9gOlrOgIns8rdhtWVl3mnNhTXqKQfG5wl7Z7LMH1kfsGnbgMe/gRwfpcDexDdY > hsRUhbJqHOjBcByuSpndjH8+Nr3/PPqQ8slTdzTvoRbCjVcgjYlCHQPyPUz31Qmh > C1I76i4yKxqUrsd1+ZYeTt3X0Q51ZCzIQ7/xolc+pScZoRrblW9+Yd0X7c5oJBM= > =lE94 > -END PGP SIGNATURE- -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Patch 8.1.0793
Hi Bram, 2019/1/23 Wed 6:20:59 UTC+9 Bram Moolenaar wrote: > Patch 8.1.0793 > Problem:Incorrect error messages for functions that now take a Blob > argument. > Solution: Adjust the error messages. (Dominique Pelle, closes #3846) > Files:runtime/doc/eval.txt, src/evalfunc.c, src/globals.h, > src/testdir/test_blob.vim, src/testdir/test_listdict.vim The error number E898 has been already used for channel. We should use another number. Regards, Ken Takata -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Patch 8.1.0793
Hi Bram, 2019/1/23 Wed 10:31:17 UTC+9 ktakat...@gmail.com wrote: > Hi Bram, > > 2019/1/23 Wed 6:20:59 UTC+9 Bram Moolenaar wrote: > > Patch 8.1.0793 > > Problem:Incorrect error messages for functions that now take a Blob > > argument. > > Solution: Adjust the error messages. (Dominique Pelle, closes #3846) > > Files: runtime/doc/eval.txt, src/evalfunc.c, src/globals.h, > > src/testdir/test_blob.vim, src/testdir/test_listdict.vim > > The error number E898 has been already used for channel. > We should use another number. E899 is not used (and also E900). Regards, Ken Takata -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.