{"thread":{"id":"33383","subject":"[PATCH v2 1/4] remote-bzr: avoid echo -n","startedAt":"2013-04-04T15:36:15Z","lastAt":"2013-04-06T18:41:26Z","messageCount":11,"participants":["Felipe Contreras","Torsten Bögershausen"],"isPatch":true,"patchVersion":2,"patchTotal":4},"messages":[{"id":"213116","messageId":"1365089779-9726-1-git-send-email-felipe.contreras@gmail.com","threadId":"33383","inReplyTo":null,"subject":"[PATCH v2 0/4] remote-helpers: trivial test fixes","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-04-04T15:36:15Z","receivedAt":"2013-04-04T15:36:15Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Hi,\n\nA reroll, now we do some checks, just avoid test-lint-duplicates, and fix the\noutsanding shell portability issue. The rest is the same.\n\nFelipe Contreras (4):\n  remote-bzr: avoid echo -n\n  remote-helpers: fix the run of all tests\n  remote-bzr: remove stale check code for tests\n  remote-hg: fix hg-git test-case\n\n contrib/remote-helpers/Makefile          |  1 +\n contrib/remote-helpers/test-bzr.sh       | 16 +---------------\n contrib/remote-helpers/test-hg-hg-git.sh |  1 -\n 3 files changed, 2 insertions(+), 16 deletions(-)\n\n-- \n1.8.2\n"},{"id":"213115","messageId":"1365089779-9726-2-git-send-email-felipe.contreras@gmail.com","threadId":"33383","inReplyTo":"1365089779-9726-1-git-send-email-felipe.contreras@gmail.com","subject":"[PATCH v2 1/4] remote-bzr: avoid echo -n","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-04-04T15:36:16Z","receivedAt":"2013-04-04T15:36:16Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"It's not portable, as reported by test-lint.\n\nSigned-off-by: Felipe Contreras <felipe.contreras@gmail.com>\n---\n contrib/remote-helpers/test-bzr.sh | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh\nindex 70aa8a0..b81052b 100755\n--- a/contrib/remote-helpers/test-bzr.sh\n+++ b/contrib/remote-helpers/test-bzr.sh\n@@ -136,7 +136,7 @@ test_expect_success 'special modes' '\n   (cd gitrepo &&\n   git cat-file -p HEAD:link > ../actual) &&\n \n-  echo -n content > expected &&\n+  printf content > expected &&\n   test_cmp expected actual\n '\n \n-- \n1.8.2\n"},{"id":"213117","messageId":"1365089779-9726-3-git-send-email-felipe.contreras@gmail.com","threadId":"33383","inReplyTo":"1365089779-9726-1-git-send-email-felipe.contreras@gmail.com","subject":"[PATCH v2 2/4] remote-helpers: fix the run of all tests","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-04-04T15:36:17Z","receivedAt":"2013-04-04T15:36:17Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"We don't need to check for duplicate test numbers, we don't have them,\nand either way test-lint-duplicates doesn't work in this situation.\n\nAlso, while we are on it, enable test-lint-shell-syntax to check for sh\nerrors.\n\nSigned-off-by: Felipe Contreras <felipe.contreras@gmail.com>\n---\n contrib/remote-helpers/Makefile | 1 +\n 1 file changed, 1 insertion(+)\n\ndiff --git a/contrib/remote-helpers/Makefile b/contrib/remote-helpers/Makefile\nindex 9a76575..239161d 100644\n--- a/contrib/remote-helpers/Makefile\n+++ b/contrib/remote-helpers/Makefile\n@@ -3,6 +3,7 @@ TESTS := $(wildcard test*.sh)\n export T := $(addprefix $(CURDIR)/,$(TESTS))\n export MAKE := $(MAKE) -e\n export PATH := $(CURDIR):$(PATH)\n+export TEST_LINT := test-lint-executable test-lint-shell-syntax\n \n test:\n \t$(MAKE) -C ../../t $@\n-- \n1.8.2\n"},{"id":"213118","messageId":"1365089779-9726-4-git-send-email-felipe.contreras@gmail.com","threadId":"33383","inReplyTo":"1365089779-9726-1-git-send-email-felipe.contreras@gmail.com","subject":"[PATCH v2 3/4] remote-bzr: remove stale check code for tests","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-04-04T15:36:18Z","receivedAt":"2013-04-04T15:36:18Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"The fastimport plugin was only required in the early stage of\ndevelopment.\n\nSigned-off-by: Felipe Contreras <felipe.contreras@gmail.com>\n---\n contrib/remote-helpers/test-bzr.sh | 14 --------------\n 1 file changed, 14 deletions(-)\n\ndiff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh\nindex b81052b..8450432 100755\n--- a/contrib/remote-helpers/test-bzr.sh\n+++ b/contrib/remote-helpers/test-bzr.sh\n@@ -17,20 +17,6 @@ if ! \"$PYTHON_PATH\" -c 'import bzrlib'; then\n \ttest_done\n fi\n \n-cmd='\n-import bzrlib\n-bzrlib.initialize()\n-import bzrlib.plugin\n-bzrlib.plugin.load_plugins()\n-import bzrlib.plugins.fastimport\n-'\n-\n-if ! \"$PYTHON_PATH\" -c \"$cmd\"; then\n-\techo \"consider setting BZR_PLUGIN_PATH=$HOME/.bazaar/plugins\" 1>&2\n-\tskip_all='skipping remote-bzr tests; bzr-fastimport not available'\n-\ttest_done\n-fi\n-\n check () {\n \t(cd $1 &&\n \tgit log --format='%s' -1 &&\n-- \n1.8.2\n"},{"id":"213119","messageId":"1365089779-9726-5-git-send-email-felipe.contreras@gmail.com","threadId":"33383","inReplyTo":"1365089779-9726-1-git-send-email-felipe.contreras@gmail.com","subject":"[PATCH v2 4/4] remote-hg: fix hg-git test-case","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-04-04T15:36:19Z","receivedAt":"2013-04-04T15:36:19Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"There was some lingering code that shouldn't have been there in the\nfirst place.\n\nSigned-off-by: Felipe Contreras <felipe.contreras@gmail.com>\n---\n contrib/remote-helpers/test-hg-hg-git.sh | 1 -\n 1 file changed, 1 deletion(-)\n\ndiff --git a/contrib/remote-helpers/test-hg-hg-git.sh b/contrib/remote-helpers/test-hg-hg-git.sh\nindex 7e3967f..3f253b7 100755\n--- a/contrib/remote-helpers/test-hg-hg-git.sh\n+++ b/contrib/remote-helpers/test-hg-hg-git.sh\n@@ -140,7 +140,6 @@ test_expect_success 'executable bit' '\n \t\tgit_clone_$x hgrepo-$x gitrepo2-$x &&\n \t\tgit_log gitrepo2-$x > log-$x\n \tdone &&\n-\tcp -r log-* output-* /tmp/foo/ &&\n \n \ttest_cmp output-hg output-git &&\n \ttest_cmp log-hg log-git\n-- \n1.8.2\n"},{"id":"213320","messageId":"51605546.3080503@web.de","threadId":"33383","inReplyTo":"1365089779-9726-1-git-send-email-felipe.contreras@gmail.com","subject":"Re: [PATCH v2 0/4] remote-helpers: trivial test fixes","fromName":"Torsten Bögershausen","fromEmail":"tboegi@web.de","sentAt":"2013-04-06T17:03:02Z","receivedAt":"2013-04-06T17:03:02Z","isPatch":true,"sender":{"key":"tboegi@web.de","avatar":"https://avatars.githubusercontent.com/u/7138363?v=4"},"body":"On 04.04.13 17:36, Felipe Contreras wrote:\n> Hi,\n> \n> A reroll, now we do some checks, just avoid test-lint-duplicates, and fix the\n> outsanding shell portability issue. The rest is the same.\n> \n> Felipe Contreras (4):\n>   remote-bzr: avoid echo -n\n>   remote-helpers: fix the run of all tests\n>   remote-bzr: remove stale check code for tests\n>   remote-hg: fix hg-git test-case\n> \n>  contrib/remote-helpers/Makefile          |  1 +\n>  contrib/remote-helpers/test-bzr.sh       | 16 +---------------\n>  contrib/remote-helpers/test-hg-hg-git.sh |  1 -\n>  3 files changed, 2 insertions(+), 16 deletions(-)\n> \nSorry being late, now I installed bzr and hg on one of my machines \n\nOne defect found: \"\\s\" is not portable on all grep versions\nA \"*\" is not a \"basic regular expression\", so we need to use egrep\n\n\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex 5f81dfa..2e80c11 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -115,7 +115,7 @@ test_expect_success 'update bookmark' '\n   git push\n   ) &&\n \n-  hg -R hgrepo bookmarks | grep \"devel\\s\\+3:\"\n+  hg -R hgrepo bookmarks | egrep \"devel[[:space:]]+3:\"\n '\n2 mninor nits:\n\ndiff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh\nindex 8450432..7970f9e 100755\n--- a/contrib/remote-helpers/test-bzr.sh\n+++ b/contrib/remote-helpers/test-bzr.sh\n@@ -13,7 +13,7 @@ if ! test_have_prereq PYTHON; then\n fi\n \n if ! \"$PYTHON_PATH\" -c 'import bzrlib'; then\n-       skip_all='skipping remote-bzr tests; bzr not available'\n+       skip_all='skipping remote-bzr tests; python bzrlib not available'\n        test_done\n fi\n \ndiff --git a/contrib/remote-helpers/test-hg-hg-git.sh b/contrib/remote-helpers/test-hg-hg-git.sh\nindex 3f253b7..5d87282 100755\n--- a/contrib/remote-helpers/test-hg-hg-git.sh\n+++ b/contrib/remote-helpers/test-hg-hg-git.sh\n@@ -21,7 +21,7 @@ if ! \"$PYTHON_PATH\" -c 'import mercurial'; then\n fi\n \n if ! \"$PYTHON_PATH\" -c 'import hggit'; then\n-       skip_all='skipping remote-hg tests; hg-git not available'\n+       skip_all='skipping remote-hg tests; python hggit not available'\n        test_done\n fi\n\n(And as a micro-nit: the indenting deserves some better indentation:\nTAB could be used for *.sh, and sub-shells could be indentented one TAB:\n\n\ntest_expect_success 'update bookmark' '\n\ttest_when_finished \"rm -rf gitrepo*\" &&\n\t(\n\t\tcd hgrepo &&\n\t\thg bookmark devel\n\n/Torsten\n"},{"id":"213306","messageId":"516056AE.9060304@web.de","threadId":"33383","inReplyTo":"51605546.3080503@web.de","subject":"Re: [PATCH v2 0/4] remote-helpers: trivial test fixes","fromName":"Torsten Bögershausen","fromEmail":"tboegi@web.de","sentAt":"2013-04-06T17:09:02Z","receivedAt":"2013-04-06T17:09:02Z","isPatch":true,"sender":{"key":"tboegi@web.de","avatar":"https://avatars.githubusercontent.com/u/7138363?v=4"},"body":"On 06.04.13 19:03, Torsten Bögershausen wrote:\n> On 04.04.13 17:36, Felipe Contreras wrote:\n>> Hi,\n>>\n>> A reroll, now we do some checks, just avoid test-lint-duplicates, and fix the\n>> outsanding shell portability issue. The rest is the same.\n>>\n>> Felipe Contreras (4):\n>>   remote-bzr: avoid echo -n\n>>   remote-helpers: fix the run of all tests\n>>   remote-bzr: remove stale check code for tests\n>>   remote-hg: fix hg-git test-case\n>>\n>>  contrib/remote-helpers/Makefile          |  1 +\n>>  contrib/remote-helpers/test-bzr.sh       | 16 +---------------\n>>  contrib/remote-helpers/test-hg-hg-git.sh |  1 -\n>>  3 files changed, 2 insertions(+), 16 deletions(-)\n>>\n> Sorry being late, now I installed bzr and hg on one of my machines \n> \n> One defect found: \"\\s\" is not portable on all grep versions\n> A \"*\" is not a \"basic regular expression\", so we need to use egrep\n\nSorry for confusion:\nA \"*\" is a basic regular expression, but not the \"+\"\n\"+\" is an extended regular expression, which is understood\nby some  grep versions (gnu ?).\n\nFelipe: Should I send a patch, or wait for a re-roll?\n"},{"id":"213363","messageId":"CAMP44s0Lbg-_JKPR6WF6Qhkz7cgweHejA-T_V3mCO73a4iXpNA@mail.gmail.com","threadId":"33383","inReplyTo":"51605546.3080503@web.de","subject":"Re: [PATCH v2 0/4] remote-helpers: trivial test fixes","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-04-06T17:29:36Z","receivedAt":"2013-04-06T17:29:36Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"On Sat, Apr 6, 2013 at 11:03 AM, Torsten Bögershausen <tboegi@web.de> wrote:\n> On 04.04.13 17:36, Felipe Contreras wrote:\n>> Hi,\n>>\n>> A reroll, now we do some checks, just avoid test-lint-duplicates, and fix the\n>> outsanding shell portability issue. The rest is the same.\n>>\n>> Felipe Contreras (4):\n>>   remote-bzr: avoid echo -n\n>>   remote-helpers: fix the run of all tests\n>>   remote-bzr: remove stale check code for tests\n>>   remote-hg: fix hg-git test-case\n>>\n>>  contrib/remote-helpers/Makefile          |  1 +\n>>  contrib/remote-helpers/test-bzr.sh       | 16 +---------------\n>>  contrib/remote-helpers/test-hg-hg-git.sh |  1 -\n>>  3 files changed, 2 insertions(+), 16 deletions(-)\n>>\n> Sorry being late, now I installed bzr and hg on one of my machines\n>\n> One defect found: \"\\s\" is not portable on all grep versions\n> A \"*\" is not a \"basic regular expression\", so we need to use egrep\n>\n>\n> diff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\n> index 5f81dfa..2e80c11 100755\n> --- a/contrib/remote-helpers/test-hg.sh\n> +++ b/contrib/remote-helpers/test-hg.sh\n> @@ -115,7 +115,7 @@ test_expect_success 'update bookmark' '\n>    git push\n>    ) &&\n>\n> -  hg -R hgrepo bookmarks | grep \"devel\\s\\+3:\"\n> +  hg -R hgrepo bookmarks | egrep \"devel[[:space:]]+3:\"\n>  '\n\nI would rather use [ \\t] instead.\n\n> 2 mninor nits:\n>\n> diff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh\n> index 8450432..7970f9e 100755\n> --- a/contrib/remote-helpers/test-bzr.sh\n> +++ b/contrib/remote-helpers/test-bzr.sh\n> @@ -13,7 +13,7 @@ if ! test_have_prereq PYTHON; then\n>  fi\n>\n>  if ! \"$PYTHON_PATH\" -c 'import bzrlib'; then\n> -       skip_all='skipping remote-bzr tests; bzr not available'\n> +       skip_all='skipping remote-bzr tests; python bzrlib not available'\n\n\"python bzrlib\" is meaningless to the user; bazaar provides it;\nbasically all the code is there.\n\n>         test_done\n>  fi\n>\n> diff --git a/contrib/remote-helpers/test-hg-hg-git.sh b/contrib/remote-helpers/test-hg-hg-git.sh\n> index 3f253b7..5d87282 100755\n> --- a/contrib/remote-helpers/test-hg-hg-git.sh\n> +++ b/contrib/remote-helpers/test-hg-hg-git.sh\n> @@ -21,7 +21,7 @@ if ! \"$PYTHON_PATH\" -c 'import mercurial'; then\n>  fi\n>\n>  if ! \"$PYTHON_PATH\" -c 'import hggit'; then\n> -       skip_all='skipping remote-hg tests; hg-git not available'\n> +       skip_all='skipping remote-hg tests; python hggit not available'\n\nSame. Google for 'python hggit' and the result is hg-git; and that's\nwhat you would actually tell your package manager to install.\n\nCheers.\n\n-- \nFelipe Contreras\n"},{"id":"213355","messageId":"51605F32.7080303@web.de","threadId":"33383","inReplyTo":"CAMP44s0Lbg-_JKPR6WF6Qhkz7cgweHejA-T_V3mCO73a4iXpNA@mail.gmail.com","subject":"Re: [PATCH v2 0/4] remote-helpers: trivial test fixes","fromName":"Torsten Bögershausen","fromEmail":"tboegi@web.de","sentAt":"2013-04-06T17:45:22Z","receivedAt":"2013-04-06T17:45:22Z","isPatch":true,"sender":{"key":"tboegi@web.de","avatar":"https://avatars.githubusercontent.com/u/7138363?v=4"},"body":"On 06.04.13 19:29, Felipe Contreras wrote:\n> On Sat, Apr 6, 2013 at 11:03 AM, Torsten Bögershausen <tboegi@web.de> wrote:\n>> On 04.04.13 17:36, Felipe Contreras wrote:\n>>> Hi,\n>>>\n>>> A reroll, now we do some checks, just avoid test-lint-duplicates, and fix the\n>>> outsanding shell portability issue. The rest is the same.\n>>>\n>>> Felipe Contreras (4):\n>>>   remote-bzr: avoid echo -n\n>>>   remote-helpers: fix the run of all tests\n>>>   remote-bzr: remove stale check code for tests\n>>>   remote-hg: fix hg-git test-case\n>>>\n>>>  contrib/remote-helpers/Makefile          |  1 +\n>>>  contrib/remote-helpers/test-bzr.sh       | 16 +---------------\n>>>  contrib/remote-helpers/test-hg-hg-git.sh |  1 -\n>>>  3 files changed, 2 insertions(+), 16 deletions(-)\n>>>\n>> Sorry being late, now I installed bzr and hg on one of my machines\n>>\n>> One defect found: \"\\s\" is not portable on all grep versions\n>> A \"*\" is not a \"basic regular expression\", so we need to use egrep\n>>\n>>\n>> diff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\n>> index 5f81dfa..2e80c11 100755\n>> --- a/contrib/remote-helpers/test-hg.sh\n>> +++ b/contrib/remote-helpers/test-hg.sh\n>> @@ -115,7 +115,7 @@ test_expect_success 'update bookmark' '\n>>    git push\n>>    ) &&\n>>\n>> -  hg -R hgrepo bookmarks | grep \"devel\\s\\+3:\"\n>> +  hg -R hgrepo bookmarks | egrep \"devel[[:space:]]+3:\"\n>>  '\n> \n> I would rather use [ \\t] instead.\nThat doesn't work on e.g. Mac OS.\n[:space:] is actually portable\n/Torsten\n"},{"id":"213360","messageId":"CAMP44s0tAmXxGLnKJ=+xvbMUJW_bqiK75-hKo9M3jh8J=YX-4g@mail.gmail.com","threadId":"33383","inReplyTo":"51605F32.7080303@web.de","subject":"Re: [PATCH v2 0/4] remote-helpers: trivial test fixes","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-04-06T17:58:53Z","receivedAt":"2013-04-06T17:58:53Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"On Sat, Apr 6, 2013 at 11:45 AM, Torsten Bögershausen <tboegi@web.de> wrote:\n> On 06.04.13 19:29, Felipe Contreras wrote:\n>> On Sat, Apr 6, 2013 at 11:03 AM, Torsten Bögershausen <tboegi@web.de> wrote:\n\n>>> --- a/contrib/remote-helpers/test-hg.sh\n>>> +++ b/contrib/remote-helpers/test-hg.sh\n>>> @@ -115,7 +115,7 @@ test_expect_success 'update bookmark' '\n>>>    git push\n>>>    ) &&\n>>>\n>>> -  hg -R hgrepo bookmarks | grep \"devel\\s\\+3:\"\n>>> +  hg -R hgrepo bookmarks | egrep \"devel[[:space:]]+3:\"\n>>>  '\n>>\n>> I would rather use [ \\t] instead.\n> That doesn't work on e.g. Mac OS.\n> [:space:] is actually portable\n\nWhy wouldn't it work? This is from their manpage:\n\nA bracket expression is a list of characters enclosed by [ and ].  It\nmatches any single character in\nthat list; if the first character of the list is the caret ^ then it\nmatches any character not in the\nlist.  For example, the regular expression [0123456789] matches any\nsingle digit.\n\n-- \nFelipe Contreras\n"},{"id":"213365","messageId":"51606C56.7060108@web.de","threadId":"33383","inReplyTo":"CAMP44s0tAmXxGLnKJ=+xvbMUJW_bqiK75-hKo9M3jh8J=YX-4g@mail.gmail.com","subject":"Re: [PATCH v2 0/4] remote-helpers: trivial test fixes","fromName":"Torsten Bögershausen","fromEmail":"tboegi@web.de","sentAt":"2013-04-06T18:41:26Z","receivedAt":"2013-04-06T18:41:26Z","isPatch":true,"sender":{"key":"tboegi@web.de","avatar":"https://avatars.githubusercontent.com/u/7138363?v=4"},"body":"On 06.04.13 19:58, Felipe Contreras wrote:\n> On Sat, Apr 6, 2013 at 11:45 AM, Torsten Bögershausen <tboegi@web.de> wrote:\n>> On 06.04.13 19:29, Felipe Contreras wrote:\n>>> On Sat, Apr 6, 2013 at 11:03 AM, Torsten Bögershausen <tboegi@web.de> wrote:\n> \n>>>> --- a/contrib/remote-helpers/test-hg.sh\n>>>> +++ b/contrib/remote-helpers/test-hg.sh\n>>>> @@ -115,7 +115,7 @@ test_expect_success 'update bookmark' '\n>>>>    git push\n>>>>    ) &&\n>>>>\n>>>> -  hg -R hgrepo bookmarks | grep \"devel\\s\\+3:\"\n>>>> +  hg -R hgrepo bookmarks | egrep \"devel[[:space:]]+3:\"\n>>>>  '\n>>>\n>>> I would rather use [ \\t] instead.\n>> That doesn't work on e.g. Mac OS.\n>> [:space:] is actually portable\n> \n> Why wouldn't it work? This is from their manpage:\n> \n> A bracket expression is a list of characters enclosed by [ and ].  It\n> matches any single character in\n> that list; if the first character of the list is the caret ^ then it\n> matches any character not in the\n> list.  For example, the regular expression [0123456789] matches any\n> single digit.\n> \n\nIt's not about the \"bracket list\".\nIt's about using \\t as an abreviation for TAB.\nThe \"backslash n\" as an replacement for TAB is quite often understood by many programs.\nIt is not demanded to be understood by all grep implementations, please see below.\nInstead of using \\t you can use a literal TAB.\nContact your local editor how to put that inte source code ;-)\n\n \nhttp://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html#tag_09_03\n\n9.3.2 BRE Ordinary Characters\n\nAn ordinary character is a BRE that matches itself: any character in the supported character set, except for the BRE special characters listed in BRE Special Characters.\n\nThe interpretation of an ordinary character preceded by a backslash ( '\\' ) is undefined, except for:\n\n    The characters ')', '(', '{', and '}'\n\n    The digits 1 to 9 inclusive (see BREs Matching Multiple Characters)\n\n    A character inside a bracket expression\n"}]}