Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package mcfly for openSUSE:Factory checked 
in at 2023-12-25 19:06:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mcfly (Old)
 and      /work/SRC/openSUSE:Factory/.mcfly.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mcfly"

Mon Dec 25 19:06:23 2023 rev:5 rq:1135079 version:0.8.4+0

Changes:
--------
--- /work/SRC/openSUSE:Factory/mcfly/mcfly.changes      2023-12-04 
23:01:36.055820327 +0100
+++ /work/SRC/openSUSE:Factory/.mcfly.new.28375/mcfly.changes   2023-12-25 
19:06:35.788320355 +0100
@@ -1,0 +2,16 @@
+Mon Dec 25 07:49:21 UTC 2023 - Michael Vetter <[email protected]>
+
+- Update to 0.8.4:
+  * Remove spurious print when moving files.
+  * PowerShell improvements
+
+-------------------------------------------------------------------
+Mon Dec  4 07:29:28 UTC 2023 - Michael Vetter <[email protected]>
+
+- Update to 0.8.3:
+  * Add support for exporting command history matching a regex or
+    date range
+  * Add Windows and Powershell support
+  * Add deprecation warning on brew tap.
+
+-------------------------------------------------------------------

Old:
----
  cargo_config
  mcfly-0.8.2+0.tar.xz

New:
----
  mcfly-0.8.4+0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mcfly.spec ++++++
--- /var/tmp/diff_new_pack.jDQpyf/_old  2023-12-25 19:06:36.708353930 +0100
+++ /var/tmp/diff_new_pack.jDQpyf/_new  2023-12-25 19:06:36.708353930 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           mcfly
-Version:        0.8.2+0
+Version:        0.8.4+0
 Release:        0
 Summary:        Shell history helper
 License:        MIT
@@ -25,7 +25,6 @@
 URL:            https://github.com/cantino/mcfly
 Source0:        %{name}-%{version}.tar.xz
 Source1:        vendor.tar.xz
-Source2:        cargo_config
 BuildRequires:  cargo-packaging
 BuildRequires:  libopenssl-devel
 
@@ -34,8 +33,6 @@
 
 %prep
 %autosetup -a1
-mkdir -p .cargo
-cp %{SOURCE2} .cargo/config
 
 %build
 %{cargo_build}

++++++ _service ++++++
--- /var/tmp/diff_new_pack.jDQpyf/_old  2023-12-25 19:06:36.736354952 +0100
+++ /var/tmp/diff_new_pack.jDQpyf/_new  2023-12-25 19:06:36.740355098 +0100
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/cantino/mcfly.git</param>
     <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
     <param name="scm">git</param>
-    <param name="revision">v0.8.2</param>
+    <param name="revision">v0.8.4</param>
     <param name="match-tag">*</param>
     <param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param>
     <param name="versionrewrite-replacement">\1</param>

++++++ mcfly-0.8.2+0.tar.xz -> mcfly-0.8.4+0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mcfly-0.8.2+0/CHANGELOG.txt 
new/mcfly-0.8.4+0/CHANGELOG.txt
--- old/mcfly-0.8.2+0/CHANGELOG.txt     2023-12-03 21:14:06.000000000 +0100
+++ new/mcfly-0.8.4+0/CHANGELOG.txt     2023-12-25 00:00:24.000000000 +0100
@@ -1,5 +1,11 @@
-0.8.2 - Dec 3, 2023
+0.8.4 - Dec 24, 2023
+ - Remove spurious print when moving files.
+ - PowerShell improvements (thanks @Namorzyny and @YoshidaRyoko!)
+
+0.8.3 - Dec 3, 2023
  - Add support for exporting command history matching a regex or date range 
(thanks @TD-Sky!)
+ - Add Windows and Powershell support (thanks @jtschuster!)
+ - Add deprecation warning on brew tap.
 
 0.8.1 - Jun 3, 2023
  - Fix use of MCFLY_DISABLE_MENU (thanks @barklan!)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mcfly-0.8.2+0/Cargo.lock new/mcfly-0.8.4+0/Cargo.lock
--- old/mcfly-0.8.2+0/Cargo.lock        2023-12-03 21:14:06.000000000 +0100
+++ new/mcfly-0.8.4+0/Cargo.lock        2023-12-25 00:00:24.000000000 +0100
@@ -3,6 +3,12 @@
 version = 3
 
 [[package]]
+name = "adler32"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
+
+[[package]]
 name = "ahash"
 version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -99,6 +105,24 @@
 checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
+name = "autopilot"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "3a2fd0359d0cd30b15419bcce7e6641a3cbe2046c612b3900216dc64bc989558"
+dependencies = [
+ "cocoa",
+ "core-foundation",
+ "core-graphics",
+ "image",
+ "libc",
+ "pkg-config",
+ "rand 0.7.3",
+ "scopeguard",
+ "winapi",
+ "x11",
+]
+
+[[package]]
 name = "bitflags"
 version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -111,12 +135,24 @@
 checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 
 [[package]]
+name = "block"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+[[package]]
 name = "bumpalo"
 version = "3.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
 
 [[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
 name = "cc"
 version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -157,9 +193,9 @@
 
 [[package]]
 name = "clap"
-version = "4.4.8"
+version = "4.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "2275f18819641850fa26c89acc84d465c1bf91ce57bc2748b28c420473352f64"
+checksum = "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -167,9 +203,9 @@
 
 [[package]]
 name = "clap_builder"
-version = "4.4.8"
+version = "4.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "07cdf1b148b25c1e1f7a42225e30a0d99a615cd4637eae7365548dd4529b95bc"
+checksum = "63361bae7eef3771745f02d8d892bec2fee5f6e34af316ba556e7f97a7069ff1"
 dependencies = [
  "anstream",
  "anstyle",
@@ -184,9 +220,9 @@
 checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
 dependencies = [
  "heck",
- "proc-macro2",
- "quote",
- "syn",
+ "proc-macro2 1.0.70",
+ "quote 1.0.33",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -196,16 +232,107 @@
 checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
 
 [[package]]
+name = "cocoa"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "0c49e86fc36d5704151f5996b7b3795385f50ce09e3be0f47a0cfde869681cf8"
+dependencies = [
+ "bitflags 1.3.2",
+ "block",
+ "core-foundation",
+ "core-graphics",
+ "foreign-types",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "color_quant"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
+
+[[package]]
 name = "colorchoice"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
+name = "core-foundation"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"
+dependencies = [
+ "core-foundation-sys 0.7.0",
+ "libc",
+]
+
+[[package]]
 name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
+name = "core-graphics"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "b3889374e6ea6ab25dba90bb5d96202f61108058361f6dc72e8b03e6f8bbe923"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "foreign-types",
+ "libc",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+dependencies = [
+ "cfg-if",
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.15"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "crossbeam-utils",
+ "memoffset",
+ "scopeguard",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.16"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
+dependencies = [
+ "cfg-if",
+]
 
 [[package]]
 name = "crossterm"
@@ -255,6 +382,16 @@
 ]
 
 [[package]]
+name = "deflate"
+version = "0.7.20"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4"
+dependencies = [
+ "adler32",
+ "byteorder",
+]
+
+[[package]]
 name = "directories-next"
 version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -325,6 +462,32 @@
 ]
 
 [[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "getrandom"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi 0.9.0+wasi-snapshot-preview1",
+]
+
+[[package]]
 name = "getrandom"
 version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -332,14 +495,24 @@
 dependencies = [
  "cfg-if",
  "libc",
- "wasi",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "gif"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "471d90201b3b223f3451cd4ad53e34295f16a1df17b1edf3736d47761c3981af"
+dependencies = [
+ "color_quant",
+ "lzw",
 ]
 
 [[package]]
 name = "hashbrown"
-version = "0.14.2"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
  "ahash",
  "allocator-api2",
@@ -373,7 +546,7 @@
 checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
 dependencies = [
  "android_system_properties",
- "core-foundation-sys",
+ "core-foundation-sys 0.8.6",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
@@ -390,6 +563,32 @@
 ]
 
 [[package]]
+name = "image"
+version = "0.22.5"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "08ed2ada878397b045454ac7cfb011d73132c59f31a955d230bd1f1c2e68eb4a"
+dependencies = [
+ "byteorder",
+ "gif",
+ "jpeg-decoder",
+ "num-iter",
+ "num-rational",
+ "num-traits",
+ "png",
+ "scoped_threadpool",
+ "tiff",
+]
+
+[[package]]
+name = "inflate"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "1cdb29978cc5797bd8dcc8e5bf7de604891df2a8dc576973d71a281e916db2ff"
+dependencies = [
+ "adler32",
+]
+
+[[package]]
 name = "itertools"
 version = "0.10.5"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -405,10 +604,19 @@
 checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
 
 [[package]]
+name = "jpeg-decoder"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2"
+dependencies = [
+ "rayon",
+]
+
+[[package]]
 name = "js-sys"
-version = "0.3.65"
+version = "0.3.66"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8"
+checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -458,9 +666,25 @@
 checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
+name = "lzw"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084"
+
+[[package]]
+name = "malloc_buf"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
 name = "mcfly"
-version = "0.8.2"
+version = "0.8.4"
 dependencies = [
+ "autopilot",
  "chrono",
  "chrono-systemd-time",
  "clap",
@@ -470,9 +694,9 @@
  "humantime",
  "itertools",
  "libc",
- "rand",
+ "path-absolutize",
+ "rand 0.8.5",
  "regex",
- "relative-path",
  "rusqlite",
  "serde",
  "serde_json",
@@ -487,6 +711,15 @@
 checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
 
 [[package]]
+name = "memoffset"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
 name = "mio"
 version = "0.8.9"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -494,11 +727,54 @@
 dependencies = [
  "libc",
  "log",
- "wasi",
+ "wasi 0.11.0+wasi-snapshot-preview1",
  "windows-sys",
 ]
 
 [[package]]
+name = "num-derive"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "eafd0b45c5537c3ba526f79d3e75120036502bebacbb3f3220914067ce39dbf2"
+dependencies = [
+ "proc-macro2 0.4.30",
+ "quote 0.6.13",
+ "syn 0.15.44",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+dependencies = [
+ "autocfg",
+ "num-traits",
+]
+
+[[package]]
+name = "num-iter"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
 name = "num-traits"
 version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -508,6 +784,15 @@
 ]
 
 [[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+]
+
+[[package]]
 name = "once_cell"
 version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -537,12 +822,42 @@
 ]
 
 [[package]]
+name = "path-absolutize"
+version = "3.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "e4af381fe79fa195b4909485d99f73a80792331df0625188e707854f0b3383f5"
+dependencies = [
+ "path-dedot",
+]
+
+[[package]]
+name = "path-dedot"
+version = "3.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "07ba0ad7e047712414213ff67533e6dd477af0a4e1d14fb52343e53d30ea9397"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
 name = "pkg-config"
 version = "0.3.27"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
 
 [[package]]
+name = "png"
+version = "0.15.3"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "ef859a23054bbfee7811284275ae522f0434a3c8e7f4b74bd4a35ae7e1c4a283"
+dependencies = [
+ "bitflags 1.3.2",
+ "crc32fast",
+ "deflate",
+ "inflate",
+]
+
+[[package]]
 name = "ppv-lite86"
 version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -550,20 +865,51 @@
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.69"
+version = "0.4.30"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
+dependencies = [
+ "unicode-xid",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.70"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
+checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
+dependencies = [
+ "proc-macro2 0.4.30",
+]
+
+[[package]]
+name = "quote"
 version = "1.0.33"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
 dependencies = [
- "proc-macro2",
+ "proc-macro2 1.0.70",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom 0.1.16",
+ "libc",
+ "rand_chacha 0.2.2",
+ "rand_core 0.5.1",
+ "rand_hc",
 ]
 
 [[package]]
@@ -573,8 +919,18 @@
 checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
 dependencies = [
  "libc",
- "rand_chacha",
- "rand_core",
+ "rand_chacha 0.3.1",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.5.1",
 ]
 
 [[package]]
@@ -584,7 +940,16 @@
 checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
 dependencies = [
  "ppv-lite86",
- "rand_core",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom 0.1.16",
 ]
 
 [[package]]
@@ -593,7 +958,36 @@
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
- "getrandom",
+ "getrandom 0.2.11",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "rayon"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
 ]
 
 [[package]]
@@ -611,7 +1005,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
 dependencies = [
- "getrandom",
+ "getrandom 0.2.11",
  "libredox",
  "thiserror",
 ]
@@ -646,12 +1040,6 @@
 checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
-name = "relative-path"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "c707298afce11da2efef2f600116fa93ffa7a032b5d7b628aa17711ec81383ca"
-
-[[package]]
 name = "rusqlite"
 version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -672,6 +1060,12 @@
 checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
 
 [[package]]
+name = "scoped_threadpool"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
+
+[[package]]
 name = "scopeguard"
 version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -679,22 +1073,22 @@
 
 [[package]]
 name = "serde"
-version = "1.0.192"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001"
+checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.192"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1"
+checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn",
+ "proc-macro2 1.0.70",
+ "quote 1.0.33",
+ "syn 2.0.39",
 ]
 
 [[package]]
@@ -761,12 +1155,23 @@
 
 [[package]]
 name = "syn"
+version = "0.15.44"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
+dependencies = [
+ "proc-macro2 0.4.30",
+ "quote 0.6.13",
+ "unicode-xid",
+]
+
+[[package]]
+name = "syn"
 version = "2.0.39"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
 dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.70",
+ "quote 1.0.33",
  "unicode-ident",
 ]
 
@@ -785,9 +1190,21 @@
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn",
+ "proc-macro2 1.0.70",
+ "quote 1.0.33",
+ "syn 2.0.39",
+]
+
+[[package]]
+name = "tiff"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "d7b7c2cfc4742bd8a32f2e614339dd8ce30dbcf676bb262bd63a2327bc5df57d"
+dependencies = [
+ "byteorder",
+ "lzw",
+ "num-derive",
+ "num-traits",
 ]
 
 [[package]]
@@ -803,6 +1220,12 @@
 checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
 
 [[package]]
+name = "unicode-xid"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+
+[[package]]
 name = "utf8parse"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -822,15 +1245,21 @@
 
 [[package]]
 name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "wasi"
 version = "0.11.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.88"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce"
+checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -838,47 +1267,47 @@
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.88"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217"
+checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
- "proc-macro2",
- "quote",
- "syn",
+ "proc-macro2 1.0.70",
+ "quote 1.0.33",
+ "syn 2.0.39",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.88"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2"
+checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
 dependencies = [
- "quote",
+ "quote 1.0.33",
  "wasm-bindgen-macro-support",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.88"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907"
+checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn",
+ "proc-macro2 1.0.70",
+ "quote 1.0.33",
+ "syn 2.0.39",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.88"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b"
+checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
 
 [[package]]
 name = "winapi"
@@ -978,21 +1407,31 @@
 checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
+name = "x11"
+version = "2.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e"
+dependencies = [
+ "libc",
+ "pkg-config",
+]
+
+[[package]]
 name = "zerocopy"
-version = "0.7.26"
+version = "0.7.28"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e97e415490559a91254a2979b4829267a57d2fcd741a98eee8b722fb57289aa0"
+checksum = "7d6f15f7ade05d2a4935e34a457b936c23dc70a05cc1d97133dc99e7a3fe0f0e"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.7.26"
+version = "0.7.28"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f"
+checksum = "dbbad221e3f78500350ecbd7dfa4e63ef945c05f4c61cb7f4d3f84cd0bba649b"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn",
+ "proc-macro2 1.0.70",
+ "quote 1.0.33",
+ "syn 2.0.39",
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mcfly-0.8.2+0/Cargo.toml new/mcfly-0.8.4+0/Cargo.toml
--- old/mcfly-0.8.2+0/Cargo.toml        2023-12-03 21:14:06.000000000 +0100
+++ new/mcfly-0.8.4+0/Cargo.toml        2023-12-25 00:00:24.000000000 +0100
@@ -1,13 +1,13 @@
 [package]
 name = "mcfly"
-version = "0.8.2"
+version = "0.8.4"
 authors = ["Andrew Cantino <[email protected]>"]
 edition = "2021"
 description = "McFly replaces your default ctrl-r shell history search with an 
intelligent search engine that takes into account your working directory and 
the context of recently executed commands. McFly's suggestions are prioritized 
in real time with a small neural network."
 license = "MIT"
 repository = "https://github.com/cantino/mcfly";
 categories = ["command-line-utilities"]
-exclude = ["docs/*"]
+exclude = ["HomebrewFormula", "HomebrewFormula/*", "pkg/*", "docs/*"]
 
 [profile.release]
 lto = true
@@ -24,10 +24,9 @@
 humantime = "2.1"
 directories-next = "2.0"
 itertools = "0.10"
-libc = "0.2"
 rand = "0.8"
+path-absolutize = "3.0.13"
 regex = { version = "1", default-features = false, features = ["perf", "std"] }
-relative-path = "1.7"
 shellexpand = "2.1"
 unicode-segmentation = "1.9"
 
@@ -43,6 +42,12 @@
 version = "4"
 features = ["derive"]
 
+[target.'cfg(not(windows))'.dependencies]
+libc = "0.2"
+
+[target.'cfg(windows)'.dependencies]
+autopilot = "0.4.0"
+
 [features]
 default = ["sqlite-bundled"]
 sqlite-bundled = ["rusqlite/bundled"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mcfly-0.8.2+0/HomebrewFormula 
new/mcfly-0.8.4+0/HomebrewFormula
--- old/mcfly-0.8.2+0/HomebrewFormula   1970-01-01 01:00:00.000000000 +0100
+++ new/mcfly-0.8.4+0/HomebrewFormula   2023-12-25 19:06:36.816357872 +0100
@@ -0,0 +1 @@
+symbolic link to ./pkg/brew
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mcfly-0.8.2+0/README.md new/mcfly-0.8.4+0/README.md
--- old/mcfly-0.8.2+0/README.md 2023-12-03 21:14:06.000000000 +0100
+++ new/mcfly-0.8.4+0/README.md 2023-12-25 00:00:24.000000000 +0100
@@ -49,17 +49,17 @@
     ```
 1. Add the following to the end of your `~/.bashrc`, `~/.zshrc`, or 
`~/.config/fish/config.fish` file:
 
-    Bash:
+   Bash:
     ```bash
     eval "$(mcfly init bash)"
     ```
 
-    Zsh:
+   Zsh:
     ```bash
     eval "$(mcfly init zsh)"
     ```
 
-    Fish:
+   Fish:
     ```bash
     mcfly init fish | source
     ```
@@ -85,17 +85,17 @@
     ```
 1. Add the following to the end of your `~/.bashrc`, `~/.zshrc`, or 
`~/.config/fish/config.fish` file, as appropriate:
 
-    Bash:
+   Bash:
     ```bash
     eval "$(mcfly init bash)"
     ```
 
-    Zsh:
+   Zsh:
     ```bash
     eval "$(mcfly init zsh)"
     ```
 
-    Fish:
+   Fish:
     ```bash
     mcfly init fish | source
     ```
@@ -111,7 +111,7 @@
 
 ### Installing using our install script
 
-1. `curl -LSfs 
https://raw.githubusercontent.com/cantino/mcfly/master/ci/install.sh | sh -s -- 
--git cantino/mcfly`
+1. `curl -LSfs 
https://raw.githubusercontent.com/cantino/mcfly/master/ci/install.sh | sh -s -- 
--git cantino/mcfly` (or, if the current user doesn't have permissions to edit 
/usr/local/bin, then use `sudo sh -s`.)
 
 2. Add the following to the end of your `~/.bashrc`, `~/.zshrc`, or 
`~/.config/fish/config.fish` file, respectively:
 
@@ -141,17 +141,17 @@
 1. Install to a location in your `$PATH`. (For example, you could create a 
directory at `~/bin`, copy `mcfly` to this location, and add `export 
PATH="$PATH:$HOME/bin"` to your `.bashrc` / `.zshrc`, or run `set -Ua 
fish_user_paths "$HOME/bin"` for fish.)
 1. Add the following to the end of your `~/.bashrc`, `~/.zshrc`, or 
`~/.config/fish/config.fish` file, respectively:
 
-    Bash:
+   Bash:
     ```bash
     eval "$(mcfly init bash)"
     ```
 
-    Zsh:
+   Zsh:
     ```bash
     eval "$(mcfly init zsh)"
     ```
 
-    Fish:
+   Fish:
     ```bash
     mcfly init fish | source
     ```
@@ -165,17 +165,17 @@
 1. Ensure `~/.cargo/bin` is in your `$PATH`.
 1. Add the following to the end of your `~/.bashrc`, `~/.zshrc`, or 
`~/.config/fish/config.fish` file, respectively:
 
-    Bash:
+   Bash:
     ```bash
     eval "$(mcfly init bash)"
     ```
 
-    Zsh:
+   Zsh:
     ```bash
     eval "$(mcfly init zsh)"
     ```
 
-    Fish:
+   Fish:
     ```bash
     mcfly init fish | source
     ```
@@ -402,8 +402,8 @@
 * Learn common command options and autocomplete them in the suggestion UI?
 * Sort command line args when coming up with the template matching string.
 * Possible prioritization improvements:
-  * Cross validation & explicit training set selection.
-  * Learn command embeddings
+   * Cross validation & explicit training set selection.
+   * Learn command embeddings
 
 ## Development
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mcfly-0.8.2+0/mcfly.ps1 new/mcfly-0.8.4+0/mcfly.ps1
--- old/mcfly-0.8.2+0/mcfly.ps1 1970-01-01 01:00:00.000000000 +0100
+++ new/mcfly-0.8.4+0/mcfly.ps1 2023-12-25 00:00:24.000000000 +0100
@@ -0,0 +1,117 @@
+#!/usr/bin/env pwsh
+
+$null = New-Module mcfly {
+    # We need PSReadLine for a number of capabilities
+    if ($null -eq (Get-Module -Name PSReadLine)) {
+        Write-Host "Installing PSReadLine as McFly dependency"
+        Install-Module PSReadLine
+    }
+
+    # Get history file and make a dummy file for psreadline (hopefully after 
it has loaded the real history file to its in memory history)
+    $env:HISTFILE = $null -eq $env:HISTFILE -or "" -eq $env:HISTFILE ? 
(Get-PSReadLineOption).HistorySavePath : $env:HISTFILE;
+    $psreadline_dummy = New-TemporaryFile
+    # Append history to dummy file for compatibility
+    Get-Content -Path $Env:HISTFILE | Out-File -FilePath $psreadline_dummy 
-Force
+    Set-PSReadLineOption -HistorySavePath $psreadline_dummy.FullName
+
+
+    $fileExists = Test-Path -path $env:HISTFILE
+    if (-not $fileExists) {
+        Write-Host "McFly: ${env:HISTFILE} does not exist or is not readable. 
Please fix this or set HISTFILE to something else before using McFly.";
+        return 1;
+    }
+
+    # MCFLY_SESSION_ID is used by McFly internally to keep track of the 
commands from a particular terminal session.
+    $MCFLY_SESSION_ID = new-guid
+    $env:MCFLY_SESSION_ID = $MCFLY_SESSION_ID
+
+    $env:MCFLY_HISTORY = New-TemporaryFile
+    Get-Content $env:HISTFILE | Select-Object -Last 100 | Set-Content 
$env:MCFLY_HISTORY
+
+    <#
+    .SYNOPSIS
+    Cmdlet to run McFly
+
+    .PARAMETER CommandToComplete
+    The command to complete
+
+    .EXAMPLE
+    Invoke-McFly -CommandToComplete "cargo bu"
+    #>
+    function Invoke-McFly {
+        Param([string]$CommandToComplete)
+        $lastExitTmp = $LASTEXITCODE
+        $tempFile = New-TemporaryFile
+        Start-Process -FilePath '::MCFLY::' -ArgumentList "search", 
"$CommandToComplete", -o, "$tempFile" -NoNewWindow -Wait
+        foreach($line in Get-Content $tempFile) {
+            $key, $value = $line -split ' ', 2
+            if ("mode" -eq $key) {
+                $mode = $value
+            }
+            if ("commandline" -eq $key) {
+                $commandline = $value
+            }
+        }
+        if(-not ($null -eq $commandline)) {
+            [Microsoft.PowerShell.PSConsoleReadLine]::DeleteLine()
+            [Microsoft.PowerShell.PSConsoleReadline]::Insert($commandline)
+            if("run" -eq $mode) {
+                [Microsoft.PowerShell.PSConsoleReadline]::AcceptLine()
+            }
+        }
+        Remove-Item $tempFile
+        $LASTEXITCODE = $lastExitTmp
+    }
+
+    <#
+    .SYNOPSIS
+    Add a command to McFly's history.
+
+    .PARAMETER Command
+    The string of the command to add to McFly's history
+
+    .PARAMETER ExitCode
+    The exit code of the command to add
+
+    .EXAMPLE
+    Add-CommandToMcFly -Command "cargo build"
+    #>
+    function Add-CommandToMcFly {
+        Param (
+            [string] $Command,
+            [int] $ExitCode
+        )
+        $ExitCode = $ExitCode ?? 0;
+        $Command | Out-File -FilePath $env:MCFLY_HISTORY -Append
+        Start-Process -FilePath '::MCFLY::' -ArgumentList add, --exit, 
$ExitCode, --append-to-histfile, $env:HISTFILE -NoNewWindow | Write-Host
+    }
+
+    # We need to make sure we call out AddToHistoryHandler right after each 
command is called
+    Set-PSReadLineOption -HistorySaveStyle SaveIncrementally
+
+    Set-PSReadLineOption -PredictionSource HistoryAndPlugin
+
+    Set-PSReadLineOption -AddToHistoryHandler {
+        Param([string]$Command)
+        $lastExitTmp = $LASTEXITCODE
+        $Command = $Command.Trim();
+        # PSReadLine executes this before the command even runs, so we don't 
know its exit code - assume 0
+        Add-CommandToMcFly -Command $Command -ExitCode 0
+        $LASTEXITCODE = $lastExitTmp
+        # Tell PSReadLine to save the command to their in-memory history (and 
also the dummy file)
+        return $true
+    }
+
+    Set-PSReadLineKeyHandler -Chord "Ctrl+r" -ScriptBlock {
+        $line = $null
+        $cursor = $null
+        [Microsoft.PowerShell.PSConsoleReadline]::GetBufferState([ref]$line, 
[ref]$cursor)
+        "#mcfly: $line" | Out-File -FilePath $env:MCFLY_HISTORY -Append
+        Invoke-McFly -CommandToComplete "`"$line`""
+    }
+
+    Export-ModuleMember -Function @(
+        "Invoke-McFly"
+        "Add-CommandToMcFly"
+    )
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mcfly-0.8.2+0/pkg/brew/mcfly.rb 
new/mcfly-0.8.4+0/pkg/brew/mcfly.rb
--- old/mcfly-0.8.2+0/pkg/brew/mcfly.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/mcfly-0.8.4+0/pkg/brew/mcfly.rb 2023-12-25 00:00:24.000000000 +0100
@@ -0,0 +1,36 @@
+# To install:
+#   brew tap cantino/mcfly
+#   brew install mcfly
+#
+# To remove:
+#   brew uninstall mcfly
+#   brew untap cantino/mcfly
+
+class Mcfly < Formula
+  version 'v0.8.3'
+  desc "McFly"
+  homepage "https://github.com/cantino/mcfly";
+
+  if OS.mac?
+    url 
"https://github.com/cantino/mcfly/releases/download/#{version}/mcfly-#{version}-x86_64-apple-darwin.tar.gz";
+    sha256 "b549e9d89002b17d73f83951f3e10ae4b26fa95c876f68c1d2d766c953093e32"
+  elsif OS.linux?
+    url 
"https://github.com/cantino/mcfly/releases/download/#{version}/mcfly-#{version}-x86_64-unknown-linux-musl.tar.gz";
+    sha256 "2feb0eb924a996832825168e323574351e8839846f2d54e72aed2efd80ba3617"
+  end
+
+  def install
+    bin.install "mcfly"
+  end
+
+  def caveats
+    <<~EOS
+      DEPRECATED! mcfly is now in the core homebrew repository and you don't 
need this tap.
+      Please run:
+
+      brew uninstall mcfly
+      brew untap cantino/mcfly
+      brew install mcfly
+    EOS
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mcfly-0.8.2+0/src/cli.rs new/mcfly-0.8.4+0/src/cli.rs
--- old/mcfly-0.8.2+0/src/cli.rs        2023-12-03 21:14:06.000000000 +0100
+++ new/mcfly-0.8.4+0/src/cli.rs        2023-12-25 00:00:24.000000000 +0100
@@ -155,6 +155,7 @@
     Bash,
     Zsh,
     Fish,
+    Powershell,
 }
 
 #[derive(Debug, Clone, Copy, ValueEnum, Default)]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mcfly-0.8.2+0/src/fake_typer.rs 
new/mcfly-0.8.4+0/src/fake_typer.rs
--- old/mcfly-0.8.2+0/src/fake_typer.rs 2023-12-03 21:14:06.000000000 +0100
+++ new/mcfly-0.8.4+0/src/fake_typer.rs 2023-12-25 00:00:24.000000000 +0100
@@ -1,11 +1,13 @@
+#[cfg(not(windows))]
 use libc;
-use std::convert::TryInto;
 
 // Should we be using https://docs.rs/libc/0.2.44/libc/fn.ioctl.html instead?
+#[cfg(not(windows))]
 extern "C" {
     pub fn ioctl(fd: libc::c_int, request: libc::c_ulong, arg: ...) -> 
libc::c_int;
 }
 
+#[cfg(not(windows))]
 #[allow(clippy::useless_conversion)]
 pub fn use_tiocsti(string: &str) {
     for byte in string.as_bytes() {
@@ -15,3 +17,8 @@
         }
     }
 }
+
+#[cfg(windows)]
+pub fn use_tiocsti(string: &str) {
+    autopilot::key::type_string(string, &[], 0.0, 0.0);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mcfly-0.8.2+0/src/init.rs 
new/mcfly-0.8.4+0/src/init.rs
--- old/mcfly-0.8.2+0/src/init.rs       2023-12-03 21:14:06.000000000 +0100
+++ new/mcfly-0.8.4+0/src/init.rs       2023-12-25 00:00:24.000000000 +0100
@@ -1,4 +1,5 @@
 use super::settings::InitMode;
+use std::env;
 
 pub struct Init {}
 
@@ -14,6 +15,9 @@
             InitMode::Fish => {
                 Init::init_fish();
             }
+            InitMode::Powershell => {
+                Init::init_pwsh();
+            }
         }
         Self {}
     }
@@ -29,4 +33,9 @@
         let script = include_str!("../mcfly.fish");
         print!("{}", script);
     }
+    pub fn init_pwsh() {
+        let script = include_str!("../mcfly.ps1")
+            .replace("::MCFLY::", 
env::current_exe().unwrap().to_str().unwrap());
+        print!("{}", script);
+    }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mcfly-0.8.2+0/src/interface.rs 
new/mcfly-0.8.4+0/src/interface.rs
--- old/mcfly-0.8.2+0/src/interface.rs  2023-12-03 21:14:06.000000000 +0100
+++ new/mcfly-0.8.4+0/src/interface.rs  2023-12-25 00:00:24.000000000 +0100
@@ -8,7 +8,7 @@
 use crate::settings::{ResultSort, Settings};
 use chrono::{Duration, TimeZone, Utc};
 use crossterm::event::KeyCode::Char;
-use crossterm::event::{read, Event, KeyCode, KeyEvent, KeyModifiers};
+use crossterm::event::{read, Event, KeyCode, KeyEvent, KeyEventKind, 
KeyModifiers};
 use crossterm::style::{Color, Print, SetBackgroundColor, SetForegroundColor};
 use crossterm::terminal::{self, LeaveAlternateScreen};
 use crossterm::terminal::{Clear, ClearType, EnterAlternateScreen};
@@ -448,7 +448,6 @@
         screen.flush().unwrap();
 
         loop {
-            terminal::enable_raw_mode().unwrap();
             let event =
                 read().unwrap_or_else(|e| panic!("McFly error: failed to read 
input {:?}", &e));
             self.debug_cursor(&mut screen);
@@ -511,6 +510,9 @@
     }
 
     fn select_with_emacs_key_scheme(&mut self, event: KeyEvent) -> bool {
+        if event.kind != KeyEventKind::Press {
+            return false;
+        }
         match event {
             KeyEvent {
                 code: KeyCode::Enter,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mcfly-0.8.2+0/src/path_update_helpers.rs 
new/mcfly-0.8.4+0/src/path_update_helpers.rs
--- old/mcfly-0.8.2+0/src/path_update_helpers.rs        2023-12-03 
21:14:06.000000000 +0100
+++ new/mcfly-0.8.4+0/src/path_update_helpers.rs        2023-12-25 
00:00:24.000000000 +0100
@@ -1,32 +1,16 @@
-use relative_path::RelativePath;
-use std::env;
-use std::path::{Path, PathBuf};
+use crate::settings::pwd;
+use path_absolutize::*;
+use std::path::Path;
 use unicode_segmentation::UnicodeSegmentation;
 
 pub fn normalize_path(incoming_path: &str) -> String {
-    let expanded_path = shellexpand::tilde(incoming_path);
-
-    let current_dir = env::var("PWD").unwrap_or_else(|err| {
-        panic!(
-            "McFly error: Unable to determine current directory ({})",
-            err
-        )
-    });
-    let current_dir_path = Path::new(&current_dir);
-
-    let path_buf = if expanded_path.starts_with('/') {
-        
PathBuf::from("/").join(RelativePath::new(&expanded_path).normalize().to_path(""))
-    } else {
-        let to_current_dir = 
RelativePath::new(&expanded_path).to_path(current_dir_path);
-        RelativePath::new(to_current_dir.to_str().unwrap())
-            .normalize()
-            .to_path("/")
-    };
-
-    path_buf
+    let expanded_path = shellexpand::tilde(incoming_path).to_string();
+    return Path::new(&expanded_path)
+        .absolutize_from(pwd())
+        .unwrap()
         .to_str()
         .unwrap_or_else(|| panic!("McFly error: Path must be a valid UTF8 
string"))
-        .to_string()
+        .to_string();
 }
 
 pub fn parse_mv_command(command: &str) -> Vec<String> {
@@ -108,6 +92,7 @@
     use std::path::PathBuf;
 
     #[test]
+    #[cfg(not(windows))]
     fn normalize_path_works_absolute_paths() {
         assert_eq!(normalize_path("/foo/bar/baz"), 
String::from("/foo/bar/baz"));
         assert_eq!(normalize_path("/"), String::from("/"));
@@ -115,6 +100,7 @@
     }
 
     #[test]
+    #[cfg(not(windows))]
     fn normalize_path_works_with_tilda() {
         assert_eq!(normalize_path("~/"), env::var("HOME").unwrap());
         assert_eq!(
@@ -126,6 +112,7 @@
     }
 
     #[test]
+    #[cfg(not(windows))]
     fn normalize_path_works_with_double_dots() {
         assert_eq!(normalize_path("/foo/bar/../baz"), 
String::from("/foo/baz"));
         assert_eq!(normalize_path("/foo/bar/../../baz"), String::from("/baz"));
@@ -140,6 +127,63 @@
         assert_eq!(normalize_path("~/foo/bar/../.."), 
env::var("HOME").unwrap());
     }
 
+    #[cfg(windows)]
+    fn windows_home_path() -> String {
+        PathBuf::from(env::var("HOMEDRIVE").unwrap())
+            .join(env::var("HOMEPATH").unwrap())
+            .to_str()
+            .unwrap()
+            .to_string()
+    }
+
+    #[test]
+    #[cfg(windows)]
+    fn normalize_path_works_absolute_paths() {
+        assert_eq!(
+            normalize_path("C:\\foo\\bar\\baz"),
+            String::from("C:\\foo\\bar\\baz")
+        );
+        assert_eq!(normalize_path("C:\\"), String::from("C:\\"));
+        assert_eq!(normalize_path("C:\\\\\\\\"), String::from("C:\\"));
+    }
+
+    #[test]
+    #[cfg(windows)]
+    fn normalize_path_works_with_tilda() {
+        assert_eq!(normalize_path("~\\"), windows_home_path());
+        assert_eq!(
+            normalize_path("~\\foo"),
+            PathBuf::from(windows_home_path())
+                .join("foo")
+                .to_string_lossy()
+        );
+    }
+
+    #[test]
+    #[cfg(windows)]
+    fn normalize_path_works_with_double_dots() {
+        assert_eq!(
+            normalize_path("C:\\foo\\bar\\..\\baz"),
+            String::from("C:\\foo\\baz")
+        );
+        assert_eq!(
+            normalize_path("C:\\foo\\bar\\..\\..\\baz"),
+            String::from("C:\\baz")
+        );
+        assert_eq!(
+            normalize_path("C:\\foo\\bar\\..\\..\\"),
+            String::from("C:\\")
+        );
+        assert_eq!(normalize_path("C:\\foo\\bar\\..\\.."), 
String::from("C:\\"));
+        assert_eq!(
+            normalize_path("~\\foo\\bar\\..\\baz"),
+            PathBuf::from(windows_home_path())
+                .join("foo\\baz")
+                .to_string_lossy()
+        );
+        assert_eq!(normalize_path("~\\foo\\bar\\..\\.."), windows_home_path());
+    }
+
     #[test]
     fn parse_mv_command_works_in_the_basic_case() {
         assert_eq!(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mcfly-0.8.2+0/src/settings.rs 
new/mcfly-0.8.4+0/src/settings.rs
--- old/mcfly-0.8.2+0/src/settings.rs   2023-12-03 21:14:06.000000000 +0100
+++ new/mcfly-0.8.4+0/src/settings.rs   2023-12-25 00:00:24.000000000 +0100
@@ -31,6 +31,7 @@
     Bash,
     Zsh,
     Fish,
+    Powershell,
 }
 
 #[derive(Debug, PartialEq, Eq)]
@@ -370,6 +371,7 @@
                     Bash => InitMode::Bash,
                     Zsh => InitMode::Zsh,
                     Fish => InitMode::Fish,
+                    Powershell => InitMode::Powershell,
                 };
             }
 
@@ -442,7 +444,8 @@
     }
 }
 
-fn pwd() -> String {
+#[cfg(not(windows))]
+pub fn pwd() -> String {
     env::var("PWD").unwrap_or_else(|err| {
         panic!(
             "McFly error: Unable to determine current directory ({})",
@@ -451,6 +454,19 @@
     })
 }
 
+#[cfg(windows)]
+pub fn pwd() -> String {
+    env::current_dir()
+        .unwrap_or_else(|err| {
+            panic!(
+                "McFly error: Unable to determine current directory ({})",
+                err
+            )
+        })
+        .display()
+        .to_string()
+}
+
 fn is_env_var_truthy(name: &str) -> bool {
     match env::var(name) {
         Ok(val) => {

++++++ vendor.tar.xz ++++++
/work/SRC/openSUSE:Factory/mcfly/vendor.tar.xz 
/work/SRC/openSUSE:Factory/.mcfly.new.28375/vendor.tar.xz differ: char 15, line 
1

Reply via email to