summaryrefslogtreecommitdiffstats
path: root/vendor/gix-quote
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:41:41 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:41:41 +0000
commit10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87 (patch)
treebdffd5d80c26cf4a7a518281a204be1ace85b4c1 /vendor/gix-quote
parentReleasing progress-linux version 1.70.0+dfsg1-9~progress7.99u1. (diff)
downloadrustc-10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87.tar.xz
rustc-10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87.zip
Merging upstream version 1.70.0+dfsg2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/gix-quote')
-rw-r--r--vendor/gix-quote/.cargo-checksum.json1
-rw-r--r--vendor/gix-quote/CHANGELOG.md245
-rw-r--r--vendor/gix-quote/Cargo.toml34
-rw-r--r--vendor/gix-quote/src/ansi_c.rs114
-rw-r--r--vendor/gix-quote/src/lib.rs9
-rw-r--r--vendor/gix-quote/src/single.rs22
-rw-r--r--vendor/gix-quote/tests/quote.rs84
7 files changed, 509 insertions, 0 deletions
diff --git a/vendor/gix-quote/.cargo-checksum.json b/vendor/gix-quote/.cargo-checksum.json
new file mode 100644
index 000000000..f5dda5922
--- /dev/null
+++ b/vendor/gix-quote/.cargo-checksum.json
@@ -0,0 +1 @@
+{"files":{"CHANGELOG.md":"254ea8307d0d3d3e930eac9ddb7a94a80f69db183b7c5b4e73a3b4212021cb92","Cargo.toml":"1a125e6985e4ef4e0fedba973f784341a1a54aa6410d49f372b303709c6e3332","src/ansi_c.rs":"06db61cf51cab0f1196aa3a331902c32c48f2012b5808d617c1003e1e8a4de54","src/lib.rs":"0d199b36761c1741204680721e8817bcb53ee59333612e6ddbff18499323c8c3","src/single.rs":"845a4ede778652a1d6f423f5e0e03e6e7eb2ec9e737d57bfc7803ef5e072ca15","tests/quote.rs":"c33805724893c2ac129ded7719db979475636acaf00f0019ed09a8d9f7ae1722"},"package":"a282f5a8d9ee0b09ec47390ac727350c48f2f5c76d803cd8da6b3e7ad56e0bcb"} \ No newline at end of file
diff --git a/vendor/gix-quote/CHANGELOG.md b/vendor/gix-quote/CHANGELOG.md
new file mode 100644
index 000000000..1a3ae340b
--- /dev/null
+++ b/vendor/gix-quote/CHANGELOG.md
@@ -0,0 +1,245 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## 0.4.3 (2023-03-01)
+
+<csr-id-dbad03a7182c63dd7b3e3be1661d335b22ff360a/>
+
+### Chore
+
+ - <csr-id-dbad03a7182c63dd7b3e3be1661d335b22ff360a/> replace `quick-error` with `thiserror`
+ This increases the compile time of the crate alone if there is no proc-macro
+ in the dependency tree, but will ever so slightly improve compile times for `gix`
+ as a whole.
+
+### Commit Statistics
+
+<csr-read-only-do-not-edit/>
+
+ - 4 commits contributed to the release over the course of 1 calendar day.
+ - 8 days passed between releases.
+ - 1 commit was understood as [conventional](https://www.conventionalcommits.org).
+ - 0 issues like '(#ID)' were seen in commit messages
+
+### Commit Details
+
+<csr-read-only-do-not-edit/>
+
+<details><summary>view details</summary>
+
+ * **Uncategorized**
+ - Adjust manifests prior to release ([`addd789`](https://github.com/Byron/gitoxide/commit/addd78958fdd1e54eb702854e96079539d01965a))
+ - Prepare changelogs prior to release ([`94c99c7`](https://github.com/Byron/gitoxide/commit/94c99c71520f33269cc8dbc26f82a74747cc7e16))
+ - Merge branch 'adjustments-for-cargo' ([`d686d94`](https://github.com/Byron/gitoxide/commit/d686d94e1030a8591ba074757d56927a346c8351))
+ - Replace `quick-error` with `thiserror` ([`dbad03a`](https://github.com/Byron/gitoxide/commit/dbad03a7182c63dd7b3e3be1661d335b22ff360a))
+</details>
+
+## 0.4.2 (2023-02-20)
+
+### Bug Fixes
+
+ - <csr-id-e14dc7d475373d2c266e84ff8f1826c68a34ab92/> note that crates have been renamed from `git-*` to `gix-*`.
+ This also means that the `git-*` prefixed crates of the `gitoxide` project
+ are effectively unmaintained.
+ Use the crates with the `gix-*` prefix instead.
+
+ If you were using `git-repository`, then `gix` is its substitute.
+ - <csr-id-135d317065aae87af302beb6c26bb6ca8e30b6aa/> compatibility with `bstr` v1.3, use `*.as_bytes()` instead of `.as_ref()`.
+ `as_ref()` relies on a known target type which isn't always present. However, once
+ there is only one implementation, that's no problem, but when that changes compilation
+ fails due to ambiguity.
+
+### Commit Statistics
+
+<csr-read-only-do-not-edit/>
+
+ - 2 commits contributed to the release.
+ - 3 days passed between releases.
+ - 1 commit was understood as [conventional](https://www.conventionalcommits.org).
+ - 0 issues like '(#ID)' were seen in commit messages
+
+### Commit Details
+
+<csr-read-only-do-not-edit/>
+
+<details><summary>view details</summary>
+
+ * **Uncategorized**
+ - Release gix-date v0.4.3, gix-hash v0.10.3, gix-features v0.26.5, gix-actor v0.17.2, gix-glob v0.5.5, gix-path v0.7.2, gix-quote v0.4.2, gix-attributes v0.8.3, gix-validate v0.7.3, gix-object v0.26.2, gix-ref v0.24.1, gix-config v0.16.2, gix-command v0.2.4, gix-url v0.13.3, gix-credentials v0.9.2, gix-discover v0.13.1, gix-index v0.12.4, gix-mailmap v0.9.3, gix-pack v0.30.3, gix-packetline v0.14.3, gix-transport v0.25.6, gix-protocol v0.26.4, gix-revision v0.10.4, gix-refspec v0.7.3, gix-worktree v0.12.3, gix v0.36.1 ([`9604783`](https://github.com/Byron/gitoxide/commit/96047839a20a657a559376b0b14c65aeab96acbd))
+ - Compatibility with `bstr` v1.3, use `*.as_bytes()` instead of `.as_ref()`. ([`135d317`](https://github.com/Byron/gitoxide/commit/135d317065aae87af302beb6c26bb6ca8e30b6aa))
+</details>
+
+## 0.4.1 (2023-02-17)
+
+<csr-id-f7f136dbe4f86e7dee1d54835c420ec07c96cd78/>
+<csr-id-533e887e80c5f7ede8392884562e1c5ba56fb9a8/>
+
+### New Features (BREAKING)
+
+ - <csr-id-3d8fa8fef9800b1576beab8a5bc39b821157a5ed/> upgrade edition to 2021 in most crates.
+ MSRV for this is 1.56, and we are now at 1.60 so should be compatible.
+ This isn't more than a patch release as it should break nobody
+ who is adhering to the MSRV, but let's be careful and mark it
+ breaking.
+
+ Note that `git-features` and `git-pack` are still on edition 2018
+ as they make use of a workaround to support (safe) mutable access
+ to non-overlapping entries in a slice which doesn't work anymore
+ in edition 2021.
+ - <csr-id-a052d79674ccfe8693994150ccbe965792579491/> `ansi_c::unquote()` returns the amount of consumed bytes.
+ That way it's possible to continue parsing past the quoted string.
+
+### Changed (BREAKING)
+
+ - <csr-id-99905bacace8aed42b16d43f0f04cae996cb971c/> upgrade `bstr` to `1.0.1`
+
+### Chore
+
+ - <csr-id-f7f136dbe4f86e7dee1d54835c420ec07c96cd78/> uniformize deny attributes
+ - <csr-id-533e887e80c5f7ede8392884562e1c5ba56fb9a8/> remove default link to cargo doc everywhere
+
+### New Features
+
+ - <csr-id-03647fc4fce6a3204368ea41bd9662f236d4a799/> new function `single` for single-quoting strings.
+ This function takes a string and transforms it into a form safe for
+ consumption by Bourne compatible shells.
+
+### Commit Statistics
+
+<csr-read-only-do-not-edit/>
+
+ - 72 commits contributed to the release over the course of 330 calendar days.
+ - 6 commits were understood as [conventional](https://www.conventionalcommits.org).
+ - 4 unique issues were worked on: [#301](https://github.com/Byron/gitoxide/issues/301), [#450](https://github.com/Byron/gitoxide/issues/450), [#470](https://github.com/Byron/gitoxide/issues/470), [#691](https://github.com/Byron/gitoxide/issues/691)
+
+### Commit Details
+
+<csr-read-only-do-not-edit/>
+
+<details><summary>view details</summary>
+
+ * **[#301](https://github.com/Byron/gitoxide/issues/301)**
+ - `ansi_c::unquote()` returns the amount of consumed bytes. ([`a052d79`](https://github.com/Byron/gitoxide/commit/a052d79674ccfe8693994150ccbe965792579491))
+ - Validate out-of-quote portions can be passed ([`22c776b`](https://github.com/Byron/gitoxide/commit/22c776badd1ea26a2b1ece84fd8c551784c72212))
+ - Use git-quote crate in git-odb alternate parsing ([`8e49aa6`](https://github.com/Byron/gitoxide/commit/8e49aa6090c1c361e3ddd44798754c44c179ab49))
+ - Add ansic::undo ([`1be8f14`](https://github.com/Byron/gitoxide/commit/1be8f14128b673ea3399bc04b0a6747de9d6d404))
+ - Add empty git-quote crate ([`0d1aaf0`](https://github.com/Byron/gitoxide/commit/0d1aaf00160f98e40fb92fd401c67f59da2475fc))
+ * **[#450](https://github.com/Byron/gitoxide/issues/450)**
+ - Upgrade `bstr` to `1.0.1` ([`99905ba`](https://github.com/Byron/gitoxide/commit/99905bacace8aed42b16d43f0f04cae996cb971c))
+ * **[#470](https://github.com/Byron/gitoxide/issues/470)**
+ - Update changelogs prior to release ([`caa7a1b`](https://github.com/Byron/gitoxide/commit/caa7a1bdef74d7d3166a7e38127a59f5ab3cfbdd))
+ * **[#691](https://github.com/Byron/gitoxide/issues/691)**
+ - Set `rust-version` to 1.64 ([`55066ce`](https://github.com/Byron/gitoxide/commit/55066ce5fd71209abb5d84da2998b903504584bb))
+ * **Uncategorized**
+ - Release gix-features v0.26.4, gix-actor v0.17.1, gix-glob v0.5.3, gix-path v0.7.1, gix-quote v0.4.1, gix-attributes v0.8.2, gix-config-value v0.10.1, gix-tempfile v3.0.2, gix-lock v3.0.2, gix-validate v0.7.2, gix-object v0.26.1, gix-ref v0.24.0, gix-sec v0.6.2, gix-config v0.16.1, gix-command v0.2.3, gix-prompt v0.3.2, gix-url v0.13.2, gix-credentials v0.9.1, gix-diff v0.26.1, gix-discover v0.13.0, gix-hashtable v0.1.1, gix-bitmap v0.2.1, gix-traverse v0.22.1, gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 ([`6efd0d3`](https://github.com/Byron/gitoxide/commit/6efd0d31fbeca31ab7319aa2ac97bb31dc4ce055))
+ - Release gix-date v0.4.2, gix-hash v0.10.2, gix-features v0.26.4, gix-actor v0.17.1, gix-glob v0.5.3, gix-path v0.7.1, gix-quote v0.4.1, gix-attributes v0.8.2, gix-config-value v0.10.1, gix-tempfile v3.0.2, gix-lock v3.0.2, gix-validate v0.7.2, gix-object v0.26.1, gix-ref v0.24.0, gix-sec v0.6.2, gix-config v0.16.1, gix-command v0.2.3, gix-prompt v0.3.2, gix-url v0.13.2, gix-credentials v0.9.1, gix-diff v0.26.1, gix-discover v0.13.0, gix-hashtable v0.1.1, gix-bitmap v0.2.1, gix-traverse v0.22.1, gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 ([`6ccc88a`](https://github.com/Byron/gitoxide/commit/6ccc88a8e4a56973b1a358cf72dc012ee3c75d56))
+ - Merge branch 'rename-crates' into inform-about-gix-rename ([`c9275b9`](https://github.com/Byron/gitoxide/commit/c9275b99ea43949306d93775d9d78c98fb86cfb1))
+ - Rename `git-testtools` to `gix-testtools` ([`b65c33d`](https://github.com/Byron/gitoxide/commit/b65c33d256cfed65d11adeff41132e3e58754089))
+ - Adjust to renaming of `git-pack` to `gix-pack` ([`1ee81ad`](https://github.com/Byron/gitoxide/commit/1ee81ad310285ee4aa118118a2be3810dbace574))
+ - Adjust to renaming of `git-odb` to `gix-odb` ([`476e2ad`](https://github.com/Byron/gitoxide/commit/476e2ad1a64e9e3f0d7c8651d5bcbee36cd78241))
+ - Adjust to renaming of `git-index` to `gix-index` ([`86db5e0`](https://github.com/Byron/gitoxide/commit/86db5e09fc58ce66b252dc13b8d7e2c48e4d5062))
+ - Adjust to renaming of `git-diff` to `gix-diff` ([`49a163e`](https://github.com/Byron/gitoxide/commit/49a163ec8b18f0e5fcd05a315de16d5d8be7650e))
+ - Adjust to renaming of `git-commitgraph` to `gix-commitgraph` ([`f1dd0a3`](https://github.com/Byron/gitoxide/commit/f1dd0a3366e31259af029da73228e8af2f414244))
+ - Adjust to renaming of `git-mailmap` to `gix-mailmap` ([`2e28c56`](https://github.com/Byron/gitoxide/commit/2e28c56bb9f70de6f97439818118d3a25859698f))
+ - Adjust to renaming of `git-discover` to `gix-discover` ([`53adfe1`](https://github.com/Byron/gitoxide/commit/53adfe1c34e9ea3b27067a97b5e7ac80b351c441))
+ - Adjust to renaming of `git-chunk` to `gix-chunk` ([`59194e3`](https://github.com/Byron/gitoxide/commit/59194e3a07853eae0624ebc4907478d1de4f7599))
+ - Adjust to renaming of `git-bitmap` to `gix-bitmap` ([`75f2a07`](https://github.com/Byron/gitoxide/commit/75f2a079b17489f62bc43e1f1d932307375c4f9d))
+ - Adjust to renaming for `git-protocol` to `gix-protocol` ([`823795a`](https://github.com/Byron/gitoxide/commit/823795addea3810243cab7936cd8ec0137cbc224))
+ - Adjust to renaming of `git-refspec` to `gix-refspec` ([`c958802`](https://github.com/Byron/gitoxide/commit/c9588020561577736faa065e7e5b5bb486ca8fe1))
+ - Adjust to renaming of `git-revision` to `gix-revision` ([`ee0ee84`](https://github.com/Byron/gitoxide/commit/ee0ee84607c2ffe11ee75f27a31903db68afed02))
+ - Adjust to renaming of `git-transport` to `gix-transport` ([`b2ccf71`](https://github.com/Byron/gitoxide/commit/b2ccf716dc4425bb96651d4d58806a3cc2da219e))
+ - Adjust to renaming of `git-credentials` to `gix-credentials` ([`6b18abc`](https://github.com/Byron/gitoxide/commit/6b18abcf2856f02ab938d535a65e51ac282bf94a))
+ - Adjust to renaming of `git-prompt` to `gix-prompt` ([`6a4654e`](https://github.com/Byron/gitoxide/commit/6a4654e0d10ab773dd219cb4b731c0fc1471c36d))
+ - Adjust to renaming of `git-command` to `gix-command` ([`d26b8e0`](https://github.com/Byron/gitoxide/commit/d26b8e046496894ae06b0bbfdba77196976cd975))
+ - Adjust to renaming of `git-packetline` to `gix-packetline` ([`5cbd22c`](https://github.com/Byron/gitoxide/commit/5cbd22cf42efb760058561c6c3bbcd4dab8c8be1))
+ - Adjust to renaming of `git-worktree` to `gix-worktree` ([`73a1282`](https://github.com/Byron/gitoxide/commit/73a12821b3d9b66ec1714d07dd27eb7a73e3a544))
+ - Adjust to renamining of `git-worktree` to `gix-worktree` ([`108bb1a`](https://github.com/Byron/gitoxide/commit/108bb1a634f4828853fb590e9fc125f79441dd38))
+ - Adjust to renaming of `git-url` to `gix-url` ([`b50817a`](https://github.com/Byron/gitoxide/commit/b50817aadb143e19f61f64e19b19ec1107d980c6))
+ - Adjust to renaming of `git-date` to `gix-date` ([`9a79ff2`](https://github.com/Byron/gitoxide/commit/9a79ff2d5cc74c1efad9f41e21095ae498cce00b))
+ - Adjust to renamining of `git-attributes` to `gix-attributes` ([`4a8b3b8`](https://github.com/Byron/gitoxide/commit/4a8b3b812ac26f2a2aee8ce8ca81591273383c84))
+ - Adjust to renaminig of `git-quote` to `gix-quote` ([`648025b`](https://github.com/Byron/gitoxide/commit/648025b7ca94411fdd0d90c53e5faede5fde6c8d))
+ - Rename `git-quote` to `gix-quote` ([`0ba2f2d`](https://github.com/Byron/gitoxide/commit/0ba2f2d7e94e86bc2e7a4867375acf308f6d85db))
+ - Adjust to renaming of `git-config` to `gix-config` ([`3a861c8`](https://github.com/Byron/gitoxide/commit/3a861c8f049f6502d3bcbdac752659aa1aeda46a))
+ - Adjust to renaming of `git-ref` to `gix-ref` ([`1f5f695`](https://github.com/Byron/gitoxide/commit/1f5f695407b034377d94b172465ff573562b3fc3))
+ - Adjust to renaming of `git-lock` to `gix-lock` ([`2028e78`](https://github.com/Byron/gitoxide/commit/2028e7884ae1821edeec81612f501e88e4722b17))
+ - Adjust to renaming of `git-tempfile` to `gix-tempfile` ([`b6cc3eb`](https://github.com/Byron/gitoxide/commit/b6cc3ebb5137084a6327af16a7d9364d8f092cc9))
+ - Adjust to renaming of `git-object` to `gix-object` ([`fc86a1e`](https://github.com/Byron/gitoxide/commit/fc86a1e710ad7bf076c25cc6f028ddcf1a5a4311))
+ - Adjust to renaming of `git-actor` to `gix-actor` ([`4dc9b44`](https://github.com/Byron/gitoxide/commit/4dc9b44dc52f2486ffa2040585c6897c1bf55df4))
+ - Adjust to renaming of `git-validate` to `gix-validate` ([`5e40ad0`](https://github.com/Byron/gitoxide/commit/5e40ad078af3d08cbc2ca81ce755c0ed8a065b4f))
+ - Adjust to renaming of `git-hash` to `gix-hash` ([`4a9d025`](https://github.com/Byron/gitoxide/commit/4a9d0257110c3efa61d08c8457c4545b200226d1))
+ - Adjust to renaming of `git-features` to `gix-features` ([`e2dd68a`](https://github.com/Byron/gitoxide/commit/e2dd68a417aad229e194ff20dbbfd77668096ec6))
+ - Adjust to renaming of `git-glob` to `gix-glob` ([`35b2a3a`](https://github.com/Byron/gitoxide/commit/35b2a3acbc8f2a03f151bc0a3863163844e0ca86))
+ - Adjust to renaming of `git-sec` to `gix-sec` ([`eabbb92`](https://github.com/Byron/gitoxide/commit/eabbb923bd5a32fc80fa80f96cfdc2ab7bb2ed17))
+ - Adapt to renaming of `git-path` to `gix-path` ([`d3bbcfc`](https://github.com/Byron/gitoxide/commit/d3bbcfccad80fc44ea8e7bf819f23adaca06ba2d))
+ - Adjust to rename of `git-config-value` to `gix-config-value` ([`622b3e1`](https://github.com/Byron/gitoxide/commit/622b3e1d0bffa0f8db73697960f9712024fac430))
+ - Release git-date v0.4.2, git-hash v0.10.2, git-features v0.26.2, git-actor v0.17.1, git-glob v0.5.3, git-path v0.7.1, git-quote v0.4.1, git-attributes v0.8.2, git-config-value v0.10.1, git-tempfile v3.0.2, git-lock v3.0.2, git-validate v0.7.2, git-object v0.26.1, git-ref v0.24.0, git-sec v0.6.2, git-config v0.16.0, git-command v0.2.3, git-prompt v0.3.2, git-url v0.13.2, git-credentials v0.9.1, git-diff v0.26.1, git-discover v0.13.0, git-hashtable v0.1.1, git-bitmap v0.2.1, git-traverse v0.22.1, git-index v0.12.3, git-mailmap v0.9.2, git-chunk v0.4.1, git-pack v0.30.2, git-odb v0.40.2, git-packetline v0.14.2, git-transport v0.25.4, git-protocol v0.26.3, git-revision v0.10.2, git-refspec v0.7.2, git-worktree v0.12.2, git-repository v0.34.0, safety bump 3 crates ([`c196d20`](https://github.com/Byron/gitoxide/commit/c196d206d57a310b1ce974a1cf0e7e6d6db5c4d6))
+ - Prepare changelogs prior to release ([`7c846d2`](https://github.com/Byron/gitoxide/commit/7c846d2102dc767366771925212712ef8cc9bf07))
+ - Fix single-quotes to be similar to their source material. ([`0506a1f`](https://github.com/Byron/gitoxide/commit/0506a1f39f2b6d3218d179fe20c2118e2d4b0da0))
+ - Merge branch 'ssh-quoting' ([`cc35025`](https://github.com/Byron/gitoxide/commit/cc350250d4ee6800c8033891074389455b115072))
+ - Refactor ([`deed1f1`](https://github.com/Byron/gitoxide/commit/deed1f1a81669c53475a88a504f593884d179363))
+ - New function `single` for single-quoting strings. ([`03647fc`](https://github.com/Byron/gitoxide/commit/03647fc4fce6a3204368ea41bd9662f236d4a799))
+ - Merge branch 'main' into http-config ([`bcd9654`](https://github.com/Byron/gitoxide/commit/bcd9654e56169799eb706646da6ee1f4ef2021a9))
+ - Release git-hash v0.10.0, git-features v0.24.0, git-date v0.3.0, git-actor v0.14.0, git-glob v0.5.0, git-path v0.6.0, git-quote v0.4.0, git-attributes v0.6.0, git-config-value v0.9.0, git-tempfile v3.0.0, git-lock v3.0.0, git-validate v0.7.0, git-object v0.23.0, git-ref v0.20.0, git-sec v0.5.0, git-config v0.12.0, git-command v0.2.0, git-prompt v0.2.0, git-url v0.11.0, git-credentials v0.7.0, git-diff v0.23.0, git-discover v0.9.0, git-bitmap v0.2.0, git-traverse v0.19.0, git-index v0.9.0, git-mailmap v0.6.0, git-chunk v0.4.0, git-pack v0.27.0, git-odb v0.37.0, git-packetline v0.14.0, git-transport v0.23.0, git-protocol v0.24.0, git-revision v0.7.0, git-refspec v0.4.0, git-worktree v0.9.0, git-repository v0.29.0, git-commitgraph v0.11.0, gitoxide-core v0.21.0, gitoxide v0.19.0, safety bump 28 crates ([`b2c301e`](https://github.com/Byron/gitoxide/commit/b2c301ef131ffe1871314e19f387cf10a8d2ac16))
+ - Prepare changelogs prior to release ([`e4648f8`](https://github.com/Byron/gitoxide/commit/e4648f827c97e9d13636d1bbdc83dd63436e6e5c))
+ - Merge branch 'version2021' ([`0e4462d`](https://github.com/Byron/gitoxide/commit/0e4462df7a5166fe85c23a779462cdca8ee013e8))
+ - Upgrade edition to 2021 in most crates. ([`3d8fa8f`](https://github.com/Byron/gitoxide/commit/3d8fa8fef9800b1576beab8a5bc39b821157a5ed))
+ - Merge branch 'diff' ([`25a7726`](https://github.com/Byron/gitoxide/commit/25a7726377fbe400ea3c4927d04e9dec99802b7b))
+ - Release git-hash v0.9.10, git-features v0.22.5, git-date v0.2.0, git-actor v0.12.0, git-glob v0.4.0, git-path v0.5.0, git-quote v0.3.0, git-attributes v0.4.0, git-config-value v0.8.0, git-tempfile v2.0.5, git-validate v0.6.0, git-object v0.21.0, git-ref v0.16.0, git-sec v0.4.0, git-config v0.8.0, git-discover v0.5.0, git-traverse v0.17.0, git-index v0.5.0, git-worktree v0.5.0, git-testtools v0.9.0, git-command v0.1.0, git-prompt v0.1.0, git-url v0.9.0, git-credentials v0.5.0, git-diff v0.19.0, git-mailmap v0.4.0, git-chunk v0.3.2, git-pack v0.23.0, git-odb v0.33.0, git-packetline v0.13.0, git-transport v0.20.0, git-protocol v0.20.0, git-revision v0.5.0, git-refspec v0.2.0, git-repository v0.24.0, git-commitgraph v0.9.0, gitoxide-core v0.18.0, gitoxide v0.16.0, safety bump 28 crates ([`29a043b`](https://github.com/Byron/gitoxide/commit/29a043be6808a3e9199a9b26bd076fe843afe4f4))
+ - Merge branch 'filter-refs' ([`fd14489`](https://github.com/Byron/gitoxide/commit/fd14489f729172d615d0fa1e8dbd605e9eacf69d))
+ - Merge branch 'main' into index-from-tree ([`bc64b96`](https://github.com/Byron/gitoxide/commit/bc64b96a2ec781c72d1d4daad38aa7fb8b74f99b))
+ - Merge branch 'main' into filter-refs-by-spec ([`cfa1440`](https://github.com/Byron/gitoxide/commit/cfa144031dbcac2707ab0cec012bc35e78f9c475))
+ - Release git-date v0.0.5, git-hash v0.9.8, git-features v0.22.2, git-actor v0.11.3, git-glob v0.3.2, git-quote v0.2.1, git-attributes v0.3.2, git-tempfile v2.0.4, git-lock v2.1.1, git-validate v0.5.5, git-object v0.20.2, git-ref v0.15.2, git-sec v0.3.1, git-config v0.7.0, git-credentials v0.4.0, git-diff v0.17.2, git-discover v0.4.1, git-bitmap v0.1.2, git-index v0.4.2, git-mailmap v0.3.2, git-chunk v0.3.1, git-traverse v0.16.2, git-pack v0.21.2, git-odb v0.31.2, git-packetline v0.12.7, git-url v0.7.2, git-transport v0.19.2, git-protocol v0.19.0, git-revision v0.4.2, git-refspec v0.1.0, git-worktree v0.4.2, git-repository v0.22.0, safety bump 4 crates ([`4974eca`](https://github.com/Byron/gitoxide/commit/4974eca96d525d1ee4f8cad79bb713af7a18bf9d))
+ - Merge branch 'main' into remote-ls-refs ([`e2ee3de`](https://github.com/Byron/gitoxide/commit/e2ee3ded97e5c449933712883535b30d151c7c78))
+ - Merge branch 'docsrs-show-features' ([`31c2351`](https://github.com/Byron/gitoxide/commit/31c235140cad212d16a56195763fbddd971d87ce))
+ - Uniformize deny attributes ([`f7f136d`](https://github.com/Byron/gitoxide/commit/f7f136dbe4f86e7dee1d54835c420ec07c96cd78))
+ - Remove default link to cargo doc everywhere ([`533e887`](https://github.com/Byron/gitoxide/commit/533e887e80c5f7ede8392884562e1c5ba56fb9a8))
+ - Release git-diff v0.14.0, git-bitmap v0.1.0, git-index v0.2.0, git-tempfile v2.0.1, git-lock v2.0.0, git-mailmap v0.1.0, git-traverse v0.13.0, git-pack v0.17.0, git-quote v0.2.0, git-odb v0.27.0, git-packetline v0.12.4, git-url v0.4.0, git-transport v0.16.0, git-protocol v0.15.0, git-ref v0.12.0, git-worktree v0.1.0, git-repository v0.15.0, cargo-smart-release v0.9.0, safety bump 5 crates ([`e58dc30`](https://github.com/Byron/gitoxide/commit/e58dc3084cf17a9f618ae3a6554a7323e44428bf))
+ - Release git-quote v0.1.0 ([`a8f6c4d`](https://github.com/Byron/gitoxide/commit/a8f6c4d9e039be7fe82899ed281edb37e17e2a77))
+</details>
+
+## 0.4.0 (2022-11-21)
+
+### New Features (BREAKING)
+
+ - <csr-id-3d8fa8fef9800b1576beab8a5bc39b821157a5ed/> upgrade edition to 2021 in most crates.
+ MSRV for this is 1.56, and we are now at 1.60 so should be compatible.
+ This isn't more than a patch release as it should break nobody
+ who is adhering to the MSRV, but let's be careful and mark it
+ breaking.
+
+ Note that `gix-features` and `gix-pack` are still on edition 2018
+ as they make use of a workaround to support (safe) mutable access
+ to non-overlapping entries in a slice which doesn't work anymore
+ in edition 2021.
+
+## 0.3.0 (2022-09-20)
+
+### Changed (BREAKING)
+
+ - <csr-id-99905bacace8aed42b16d43f0f04cae996cb971c/> upgrade `bstr` to `1.0.1`
+
+## 0.2.1 (2022-08-24)
+
+<csr-id-f7f136dbe4f86e7dee1d54835c420ec07c96cd78/>
+<csr-id-533e887e80c5f7ede8392884562e1c5ba56fb9a8/>
+
+### Chore
+
+ - <csr-id-f7f136dbe4f86e7dee1d54835c420ec07c96cd78/> uniformize deny attributes
+ - <csr-id-533e887e80c5f7ede8392884562e1c5ba56fb9a8/> remove default link to cargo doc everywhere
+
+## 0.2.0 (2022-04-03)
+
+### New Features (BREAKING)
+
+ - <csr-id-a052d79674ccfe8693994150ccbe965792579491/> `ansi_c::unquote()` returns the amount of consumed bytes.
+ That way it's possible to continue parsing past the quoted string.
+
+## 0.1.0 (2022-03-24)
+
+Initial release with ansi_c unquoting capability.
+
diff --git a/vendor/gix-quote/Cargo.toml b/vendor/gix-quote/Cargo.toml
new file mode 100644
index 000000000..6996364a5
--- /dev/null
+++ b/vendor/gix-quote/Cargo.toml
@@ -0,0 +1,34 @@
+# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
+#
+# When uploading crates to the registry Cargo will automatically
+# "normalize" Cargo.toml files for maximal compatibility
+# with all versions of Cargo and also rewrite `path` dependencies
+# to registry (e.g., crates.io) dependencies.
+#
+# If you are reading this file be aware that the original Cargo.toml
+# will likely look very different (and much more reasonable).
+# See Cargo.toml.orig for the original contents.
+
+[package]
+edition = "2021"
+rust-version = "1.64"
+name = "gix-quote"
+version = "0.4.3"
+authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
+description = "A WIP crate of the gitoxide project dealing with various quotations used by git"
+license = "MIT/Apache-2.0"
+repository = "https://github.com/Byron/gitoxide"
+
+[lib]
+doctest = false
+
+[dependencies.bstr]
+version = "1.3.0"
+features = ["std"]
+default-features = false
+
+[dependencies.btoi]
+version = "0.4.2"
+
+[dependencies.thiserror]
+version = "1.0.38"
diff --git a/vendor/gix-quote/src/ansi_c.rs b/vendor/gix-quote/src/ansi_c.rs
new file mode 100644
index 000000000..a360c39d5
--- /dev/null
+++ b/vendor/gix-quote/src/ansi_c.rs
@@ -0,0 +1,114 @@
+///
+pub mod undo {
+ use bstr::{BStr, BString};
+
+ /// The error returned by [ansi_c][crate::ansi_c::undo()].
+ #[derive(Debug, thiserror::Error)]
+ #[allow(missing_docs)]
+ pub enum Error {
+ #[error("{message}: {input:?}")]
+ InvalidInput { message: String, input: BString },
+ #[error("Invalid escaped value {byte} in input {input:?}")]
+ UnsupportedEscapeByte { byte: u8, input: BString },
+ }
+
+ impl Error {
+ pub(crate) fn new(message: impl ToString, input: &BStr) -> Error {
+ Error::InvalidInput {
+ message: message.to_string(),
+ input: input.into(),
+ }
+ }
+ }
+}
+
+use std::{borrow::Cow, io::Read};
+
+use bstr::{BStr, BString, ByteSlice};
+
+/// Unquote the given ansi-c quoted `input` string, returning it and all of the consumed bytes.
+///
+/// The `input` is returned unaltered if it doesn't start with a `"` character to indicate
+/// quotation, otherwise a new unquoted string will always be allocated.
+/// The amount of consumed bytes allow to pass strings that start with a quote, and skip all quoted text for additional processing
+///
+/// See [the tests][tests] for quotation examples.
+///
+/// [tests]: https://github.com/Byron/gitoxide/blob/e355b4ad133075152312816816af5ce72cf79cff/gix-odb/src/alternate/unquote.rs#L110-L118
+pub fn undo(input: &BStr) -> Result<(Cow<'_, BStr>, usize), undo::Error> {
+ if !input.starts_with(b"\"") {
+ return Ok((input.into(), input.len()));
+ }
+ if input.len() < 2 {
+ return Err(undo::Error::new("Input must be surrounded by double quotes", input));
+ }
+ let original = input.as_bstr();
+ let mut input = &input[1..];
+ let mut consumed = 1;
+ let mut out = BString::default();
+ fn consume_one_past(input: &mut &BStr, position: usize) -> Result<u8, undo::Error> {
+ *input = input
+ .get(position + 1..)
+ .ok_or_else(|| undo::Error::new("Unexpected end of input", input))?
+ .as_bstr();
+ let next = input[0];
+ *input = input.get(1..).unwrap_or_default().as_bstr();
+ Ok(next)
+ }
+ loop {
+ match input.find_byteset(b"\"\\") {
+ Some(position) => {
+ out.extend_from_slice(&input[..position]);
+ consumed += position + 1;
+ match input[position] {
+ b'"' => break,
+ b'\\' => {
+ let next = consume_one_past(&mut input, position)?;
+ consumed += 1;
+ match next {
+ b'n' => out.push(b'\n'),
+ b'r' => out.push(b'\r'),
+ b't' => out.push(b'\t'),
+ b'a' => out.push(7),
+ b'b' => out.push(8),
+ b'v' => out.push(0xb),
+ b'f' => out.push(0xc),
+ b'"' => out.push(b'"'),
+ b'\\' => out.push(b'\\'),
+ b'0' | b'1' | b'2' | b'3' => {
+ let mut buf = [next; 3];
+ input
+ .get(..2)
+ .ok_or_else(|| {
+ undo::Error::new(
+ "Unexpected end of input when fetching two more octal bytes",
+ input,
+ )
+ })?
+ .read_exact(&mut buf[1..])
+ .expect("impossible to fail as numbers match");
+ let byte = btoi::btou_radix(&buf, 8).map_err(|e| undo::Error::new(e, original))?;
+ out.push(byte);
+ input = &input[2..];
+ consumed += 2;
+ }
+ _ => {
+ return Err(undo::Error::UnsupportedEscapeByte {
+ byte: next,
+ input: original.into(),
+ })
+ }
+ }
+ }
+ _ => unreachable!("cannot find character that we didn't search for"),
+ }
+ }
+ None => {
+ out.extend_from_slice(input);
+ consumed += input.len();
+ break;
+ }
+ }
+ }
+ Ok((out.into(), consumed))
+}
diff --git a/vendor/gix-quote/src/lib.rs b/vendor/gix-quote/src/lib.rs
new file mode 100644
index 000000000..b86336b3b
--- /dev/null
+++ b/vendor/gix-quote/src/lib.rs
@@ -0,0 +1,9 @@
+//! Provides functions to quote and possibly unquote strings with different quoting styles.
+#![deny(rust_2018_idioms, missing_docs)]
+#![forbid(unsafe_code)]
+
+///
+pub mod ansi_c;
+
+mod single;
+pub use single::single;
diff --git a/vendor/gix-quote/src/single.rs b/vendor/gix-quote/src/single.rs
new file mode 100644
index 000000000..170bca464
--- /dev/null
+++ b/vendor/gix-quote/src/single.rs
@@ -0,0 +1,22 @@
+use bstr::{BStr, BString, ByteSlice, ByteVec};
+
+/// Transforms the given `value` to be suitable for use as an argument for Bourne shells by wrapping it into single quotes.
+///
+/// Every single-quote `'` is escaped with `\'`, every exclamation mark `!` is escaped with `\!`, and the entire string is enclosed
+/// in single quotes.
+pub fn single(mut value: &BStr) -> BString {
+ let mut quoted = BString::new(b"'".to_vec());
+
+ while let Some(pos) = value.find_byteset(b"'!") {
+ quoted.extend_from_slice(&value[..pos]);
+ quoted.push_str(b"'\\");
+ quoted.push(value[pos]);
+ quoted.push(b'\'');
+
+ value = &value[pos + 1..];
+ }
+
+ quoted.extend_from_slice(value);
+ quoted.push(b'\'');
+ quoted
+}
diff --git a/vendor/gix-quote/tests/quote.rs b/vendor/gix-quote/tests/quote.rs
new file mode 100644
index 000000000..fa8a73eda
--- /dev/null
+++ b/vendor/gix-quote/tests/quote.rs
@@ -0,0 +1,84 @@
+mod single {
+ use gix_quote::single;
+
+ #[test]
+ fn empty() {
+ assert_eq!(single("".into()), "''");
+ }
+
+ #[test]
+ fn unquoted_becomes_quoted() {
+ assert_eq!(single("a".into()), "'a'");
+ assert_eq!(single("a b".into()), "'a b'");
+ assert_eq!(single("a\nb".into()), "'a\nb'", "newlines play no role");
+ }
+
+ #[test]
+ fn existing_exclamation_mark_gets_escaped() {
+ assert_eq!(single(r"a!b".into()), r"'a'\!'b'");
+ assert_eq!(single(r"!".into()), r"''\!''");
+ assert_eq!(single(r"\!".into()), r"'\'\!''");
+ }
+
+ #[test]
+ fn existing_quote_gets_escaped() {
+ assert_eq!(single(r"a'b".into()), r"'a'\''b'");
+ assert_eq!(single(r"'".into()), r"''\'''");
+ assert_eq!(single(r"'\''".into()), r"''\''\'\'''\'''");
+ }
+
+ #[test]
+ fn complex() {
+ let expected = "\'\0cmd `arg` $var\\\'\\\'\'ring\\// arg \"quoted\'\\!\'\"\'";
+ assert_eq!(single("\0cmd `arg` $var\\'ring\\// arg \"quoted!\"".into()), expected);
+ }
+}
+
+mod ansi_c {
+ mod undo {
+ use bstr::ByteSlice;
+ use gix_quote::ansi_c;
+
+ macro_rules! test {
+ ($name:ident, $input:literal, $expected:literal, $consumed:literal) => {
+ #[test]
+ fn $name() {
+ assert_eq!(
+ ansi_c::undo($input.as_bytes().as_bstr()).expect("valid input"),
+ (
+ std::borrow::Cow::Borrowed($expected.as_bytes().as_bstr()),
+ $consumed
+ )
+ );
+ }
+ };
+ }
+
+ test!(unquoted_remains_unchanged, "hello", "hello", 5);
+ test!(empty_surrounded_by_quotes, "\"\"", "", 2);
+ test!(surrounded_only_by_quotes, "\"hello\"", "hello", 7);
+ test!(typical_escapes, r#""\n\r\t""#, b"\n\r\t", 8);
+ test!(untypical_escapes, r#""\a\b\f\v""#, b"\x07\x08\x0c\x0b", 10);
+ test!(literal_escape_and_double_quote, r#""\"\\""#, br#""\"#, 6);
+ test!(
+ unicode_byte_escapes_by_number,
+ r#""\346\277\261\351\207\216\t\347\264\224""#,
+ "濱野\t純",
+ 40
+ );
+ test!(
+ exclamation_and_tilde_survive_an_escape_with_double_escaping,
+ r#""\\!\\#hello there/file.ext""#,
+ r"\!\#hello there/file.ext",
+ 28
+ );
+
+ #[test]
+ fn out_of_quote_characters_can_be_passed_and_will_not_be_consumed() {
+ let input = br#""hello there" out of quote"#.as_bstr();
+ let (unquoted, consumed) = ansi_c::undo(input).expect("valid input");
+ assert_eq!(unquoted, std::borrow::Cow::Borrowed(b"hello there".as_bstr()));
+ assert_eq!(&input[consumed..], " out of quote");
+ }
+ }
+}