{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":234403322,"defaultBranch":"master","name":"sh","ownerLogin":"theclapp","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2020-01-16T20:14:03.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/2324697?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1713456656.0","currentOid":""},"activityList":{"items":[{"before":"5b4a574f5c10c2f12480bc61dd161845f403303f","after":"90b7996651fcd4695f306a433afdf314bb2161af","ref":"refs/heads/show-Op-values","pushedAt":"2024-04-18T16:14:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"},"commit":{"message":"DebugPrint: Print the string value of tokens\n\nIn DebugPrint, if a value implements fmt.Stringer, and isn't a zero\nvalue, display its string value in addition to the default %#v format.\n\nFor the most part, this prints the string value of \"tokens\", e.g. for a\nsyntax.Redirect.Op, instead of \"Op: 0x3b\", you get \"Op: 0x3b (>&)\".","shortMessageHtmlLink":"DebugPrint: Print the string value of tokens"}},{"before":null,"after":"5b4a574f5c10c2f12480bc61dd161845f403303f","ref":"refs/heads/show-Op-values","pushedAt":"2024-04-18T16:10:56.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"},"commit":{"message":"DebugPrint: Print the string value of tokens\n\nIn DebugPrint, if a value implements fmt.Stringer, and isn't a zero\nvalue, display its string value in addition to the default %#v format.\n\nFor the most part, this prints the string value of \"tokens\", e.g. for a\nsyntax.Redirect.Op, instead of \"Op: 0x3b\", you get \"Op: 0x3b (>&)\".","shortMessageHtmlLink":"DebugPrint: Print the string value of tokens"}},{"before":"f54bc69b7a7f3c2a9fbc1e641d54450ebb4aae89","after":"1b907b711156f028c67aa9fe497f649dd3fc9d15","ref":"refs/heads/master","pushedAt":"2024-04-16T19:00:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"},"commit":{"message":"Allow case-insensitive filename globbing; add nocaseglob\n\n- Add a FoldCase flag to the expand.Config struct, which is used to\n configure how expand.Fields behaves.\n- Similarly, add a FoldCase Mode to pattern.Regexp. Setting the flag\n adds (?i) to the front of the generated regular expression.\n- Use the former to set the latter when calling expand.Fields.\n- Use all of the above to implement the \"nocaseglob\" shopt.\n\nRationale: I use expand.Fields to do filename expansion, for which I'd\nlike to do case-insensitive matching. E.g. I'd like \"c*\" to match both\n\"cmd\" and \"CHANGELOG.md\"","shortMessageHtmlLink":"Allow case-insensitive filename globbing; add nocaseglob"}},{"before":"a89b0be5ed0a8a3f367a5dc21326d7a39ab5c26f","after":"f54bc69b7a7f3c2a9fbc1e641d54450ebb4aae89","ref":"refs/heads/master","pushedAt":"2024-04-16T15:41:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"},"commit":{"message":"Allow case-insensitive filename globbing\n\n- Add a FoldCase flag to the expand.Config struct, which is used to\n configure how expand.Fields behaves.\n- Similarly, add a FoldCase Mode to pattern.Regexp. Setting the flag\n adds (?i) to the front of the generated regular expression.\n- Use the former to set the latter when calling expand.Fields.\n\nRationale: I use expand.Fields to do filename expansion, for which I'd\nlike to do case-insensitive matching. E.g. I'd like \"c*\" to match both\n\"cmd\" and \"CHANGELOG.md\"","shortMessageHtmlLink":"Allow case-insensitive filename globbing"}},{"before":"0763f7d0dc782bb17251e11d341369406faa5b0b","after":"a89b0be5ed0a8a3f367a5dc21326d7a39ab5c26f","ref":"refs/heads/master","pushedAt":"2024-04-08T14:40:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"},"commit":{"message":"interp: cancellable reads; EOF on \"read\" sets var to \"\"\n\n- Make reading cancellable. Not all input from stdin, just that done\r\n directly by the shell (i.e. the \"read\" builtin). Exec'ed programs\r\n still read directly from stdin's os.File and are not cancellable.\r\n- If you press ^D (EOF) when reading into a shell variable, set the\r\n variable to \"\". This is consistent with bash & zsh.","shortMessageHtmlLink":"interp: cancellable reads; EOF on \"read\" sets var to \"\""}},{"before":"b60d30148831830a08b3d1100cf8c59885c80599","after":"4b6327f28e3cd7e9aa1840df7b13edbab5b5a999","ref":"refs/heads/ctxreader2","pushedAt":"2024-04-02T15:19:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"},"commit":{"message":"Cancellable reads; EOF on \"read\" sets var to \"\"\n\n- Make reading cancellable. Not all input from stdin, just that done\n directly by the shell (i.e. the \"read\" builtin). Exec'ed programs\n still read directly from stdin's os.File and are not cancellable.\n- If you press ^D (EOF) when reading into a shell variable, set the\n variable to \"\". This is consistent with bash & zsh.","shortMessageHtmlLink":"Cancellable reads; EOF on \"read\" sets var to \"\""}},{"before":"12358104ef0e5418a9636a552a7cc6902309adda","after":"b60d30148831830a08b3d1100cf8c59885c80599","ref":"refs/heads/ctxreader2","pushedAt":"2024-03-20T21:45:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"},"commit":{"message":"Clean up TestCancelreader","shortMessageHtmlLink":"Clean up TestCancelreader"}},{"before":"24a510d6b688e1667dd1d07ba326b2f1353b40cd","after":"12358104ef0e5418a9636a552a7cc6902309adda","ref":"refs/heads/ctxreader2","pushedAt":"2024-03-20T21:42:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"},"commit":{"message":"Fix the data race under Linux\n\nMake sure the cancelreader Read & Close don't overlap.","shortMessageHtmlLink":"Fix the data race under Linux"}},{"before":"ec9288116c4d4f5a3feb35f13987bb7f98f3fec7","after":"24a510d6b688e1667dd1d07ba326b2f1353b40cd","ref":"refs/heads/ctxreader2","pushedAt":"2024-03-20T20:59:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"},"commit":{"message":"Uncomment more read tests.\n\n- Uncomment the tests that already worked. (And move them to below the\n other \"read\" tests.) They failed under Linux bash (though they worked\n under macOS bash). Fixed that.\n- TestCancelreader failing intermittently under Linux, even though the\n read context is definitely cancelled.\n\n Committing what I've got, for posterity.","shortMessageHtmlLink":"Uncomment more read tests."}},{"before":"72db5a6fe896b432be23cd77cf82475539e81be0","after":"ec9288116c4d4f5a3feb35f13987bb7f98f3fec7","ref":"refs/heads/ctxreader2","pushedAt":"2024-03-20T20:26:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"},"commit":{"message":"Refactor TestCancelreader\n\n- Move interp.New & StdIO out of the \"if\", as requested.\n- Change the stdin read/write filehandle variable names to be a bit\n clearer.","shortMessageHtmlLink":"Refactor TestCancelreader"}},{"before":"c3175c50a27847d48691a06634d45115d6e49bf7","after":"72db5a6fe896b432be23cd77cf82475539e81be0","ref":"refs/heads/ctxreader2","pushedAt":"2024-03-20T20:08:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"},"commit":{"message":"Add explanatory comment & some test cases\n\n- Add a comment about why we test for error after processing data from\n readLine.\n- Add some test cases. Daniel suggested four, three of which already\n pass without this PR. I left them in but commented-out, in case\n somebody wants to look at them.\n- Add a test for cancelling an already-running read.","shortMessageHtmlLink":"Add explanatory comment & some test cases"}},{"before":null,"after":"c3175c50a27847d48691a06634d45115d6e49bf7","ref":"refs/heads/ctxreader2","pushedAt":"2024-03-08T18:24:12.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"},"commit":{"message":"Cancellable reads; EOF on \"read\" sets var to \"\"\n\n- Make reading cancellable. Not all input from stdin, just that done\n directly by the shell (i.e. the \"read\" builtin). Exec'ed programs\n still read directly from stdin's os.File and are not cancellable.\n- If you press ^D (EOF) when reading into a shell variable, set the\n variable to \"\". This is consistent with bash & zsh.","shortMessageHtmlLink":"Cancellable reads; EOF on \"read\" sets var to \"\""}},{"before":"f25d6d68e131c6705ee74c18ae27d68a22923033","after":"0763f7d0dc782bb17251e11d341369406faa5b0b","ref":"refs/heads/master","pushedAt":"2024-03-07T22:27:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"},"commit":{"message":"syntax: swap frankban/quicktest for go-quicktest/qt","shortMessageHtmlLink":"syntax: swap frankban/quicktest for go-quicktest/qt"}},{"before":"c9a0d60048d098c43690126d71ee09c52c83d467","after":null,"ref":"refs/heads/ctxreader","pushedAt":"2024-03-07T22:25:46.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"}},{"before":"c5b3b2f64e249850e874d9c852184ea97b95a1e4","after":"f25d6d68e131c6705ee74c18ae27d68a22923033","ref":"refs/heads/master","pushedAt":"2023-09-28T19:24:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"},"commit":{"message":"Fix Windows compilation error\n\nSince os_notunix.go is Windows-only, my \"goimports\" didn't run, so it\ndidn't remove the now-unnecessary import of \"os\".","shortMessageHtmlLink":"Fix Windows compilation error"}},{"before":"d8a48c253e3d107322c5e09cfda5e7c4f5f7cdb9","after":"c5b3b2f64e249850e874d9c852184ea97b95a1e4","ref":"refs/heads/master","pushedAt":"2023-09-28T19:09:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"},"commit":{"message":"Replace body of hasPermissionToDir with unix.Access\n\nRip out the body of interp.hasPermissionToDir and replace it with just a\ncall to unix.Access(path, unix.X_OK).\n\nUpdate the function signature of hasPermissionToDir in os_notunix.go,\ntoo.","shortMessageHtmlLink":"Replace body of hasPermissionToDir with unix.Access"}},{"before":"5e8978406c97076aaacfd30d6b078e52e638070c","after":"d8a48c253e3d107322c5e09cfda5e7c4f5f7cdb9","ref":"refs/heads/master","pushedAt":"2023-09-28T16:04:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"},"commit":{"message":"Streamline hasPermissionsToDir\n\nIf the user id matches the file owner id, then only the \"user\"\npermission bits apply, so just return true or false immediately.\nAnd then similarly for group & \"others\".","shortMessageHtmlLink":"Streamline hasPermissionsToDir"}},{"before":"2ebb0df351acb848b56c189f663645c0bef6346f","after":"5e8978406c97076aaacfd30d6b078e52e638070c","ref":"refs/heads/master","pushedAt":"2023-09-27T19:36:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"},"commit":{"message":"interp: fix `cd` builtin: check all user groups\n\nFixes #1033.","shortMessageHtmlLink":"interp: fix cd builtin: check all user groups"}},{"before":"5d215b53480c42bf85599d9f9085ae077682e07d","after":"2ebb0df351acb848b56c189f663645c0bef6346f","ref":"refs/heads/master","pushedAt":"2023-09-27T19:35:51.000Z","pushType":"push","commitsCount":41,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"},"commit":{"message":"Merge branch 'master' of github.com:mvdan/sh","shortMessageHtmlLink":"Merge branch 'master' of github.com:mvdan/sh"}},{"before":"698a9680cd27b9a574ec6834e37c21bc85fd9f6a","after":"5d215b53480c42bf85599d9f9085ae077682e07d","ref":"refs/heads/master","pushedAt":"2023-09-27T19:34:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theclapp","name":"Larry Clapp","path":"/theclapp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2324697?s=80&v=4"},"commit":{"message":"interp: fix `cd` builtin: check all user groups\n\nFixes #1033.","shortMessageHtmlLink":"interp: fix cd builtin: check all user groups"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAENFjxaAA","startCursor":null,"endCursor":null}},"title":"Activity ยท theclapp/sh"}