--- /dev/null
+needed for ripasso
--- /dev/null
+rust-cursive (0.19.0-1) UNRELEASED-FIXME-AUTOGENERATED-DEBCARGO; urgency=medium
+
+ * Package cursive 0.19.0 from crates.io using debcargo 2.5.0
+
+ -- Alexander Kjäll <alexander.kjall@gmail.com> Fri, 21 Oct 2022 22:25:51 +0200
--- /dev/null
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: cursive
+Upstream-Contact: Alexandre Bury <alexandre.bury@gmail.com>
+Source: https://github.com/gyscos/cursive
+
+Files: *
+Copyright: 2015-2022 Alexandre Bury <alexandre.bury@gmail.com
+License: MIT
+
+Files: ./src/backends/termion.rs
+Copyright: 2016 Anthony Nowell
+License: MIT
+
+Files: debian/*
+Copyright:
+ 2022 Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
+ 2022 Alexander Kjäll <alexander.kjall@gmail.com>
+License: MIT
+
+License: MIT
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
--- /dev/null
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: cursive
+Upstream-Contact: Alexandre Bury <alexandre.bury@gmail.com>
+Source: https://github.com/gyscos/cursive
+
+Files: *
+Copyright: FIXME (overlay) UNKNOWN-YEARS Alexandre Bury <alexandre.bury@gmail.com>
+License: MIT
+Comment:
+ FIXME (overlay): Since upstream copyright years are not available in
+ Cargo.toml, they were extracted from the upstream Git repository. This may not
+ be correct information so you should review and fix this before uploading to
+ the archive.
+
+Files: ./src/backends/termion.rs
+Copyright: 2016 Anthony Nowell
+License: UNKNOWN-LICENSE; FIXME (overlay)
+Comment:
+ FIXME (overlay): These notices are extracted from files. Please review them
+ before uploading to the archive.
+
+Files: debian/*
+Copyright:
+ 2022 Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
+ 2022 Alexander Kjäll <alexander.kjall@gmail.com>
+License: MIT
+
+License: MIT
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
--- /dev/null
+overlay = "."
+uploaders = ["Alexander Kjäll <alexander.kjall@gmail.com>"]
+collapse_features = true
--- /dev/null
+diff --git a/src/backends/blt.rs b/src/backends/blt.rs
+index e9d719e..22dfca7 100644
+--- a/src/backends/blt.rs
++++ b/src/backends/blt.rs
+@@ -2,7 +2,6 @@
+ //!
+ //! Requires the `blt-backend` feature.
+ #![cfg(feature = "bear-lib-terminal")]
+-#![cfg_attr(feature = "doc-cfg", doc(cfg(feature = "blt-backend")))]
+
+ pub use bear_lib_terminal;
+
+diff --git a/src/backends/crossterm.rs b/src/backends/crossterm.rs
+index 4fb301c..2c9843a 100644
+--- a/src/backends/crossterm.rs
++++ b/src/backends/crossterm.rs
+@@ -2,7 +2,6 @@
+ //!
+ //! Requires the `crossterm-backend` feature.
+ #![cfg(feature = "crossterm")]
+-#![cfg_attr(feature = "doc-cfg", doc(cfg(feature = "crossterm-backend")))]
+
+ use std::{
+ cell::{Cell, RefCell, RefMut},
+diff --git a/src/backends/curses/n.rs b/src/backends/curses/n.rs
+index 583015d..2e951ed 100644
+--- a/src/backends/curses/n.rs
++++ b/src/backends/curses/n.rs
+@@ -1,6 +1,5 @@
+ //! Ncurses-specific backend.
+ #![cfg(feature = "ncurses-backend")]
+-#![cfg_attr(feature = "doc-cfg", doc(cfg(feature = "ncurses-backend")))]
+ pub use ncurses;
+
+ use log::{debug, warn};
+diff --git a/src/backends/curses/pan.rs b/src/backends/curses/pan.rs
+index 74d080f..4dc0e56 100644
+--- a/src/backends/curses/pan.rs
++++ b/src/backends/curses/pan.rs
+@@ -1,6 +1,5 @@
+ //! Pancuses-specific backend.
+ #![cfg(feature = "pancurses-backend")]
+-#![cfg_attr(feature = "doc-cfg", doc(cfg(feature = "pancurses-backend")))]
+
+ pub use pancurses;
+
+diff --git a/src/backends/termion.rs b/src/backends/termion.rs
+index 05c1946..685bc4f 100644
+--- a/src/backends/termion.rs
++++ b/src/backends/termion.rs
+@@ -2,7 +2,6 @@
+ //!
+ //! Requires the `termion-backend` feature.
+ #![cfg(feature = "termion")]
+-#![cfg_attr(feature = "doc-cfg", doc(cfg(feature = "termion-backend")))]
+
+ pub use termion;
+
+diff --git a/src/cursive_ext.rs b/src/cursive_ext.rs
+index 516357c..74b8bf0 100644
+--- a/src/cursive_ext.rs
++++ b/src/cursive_ext.rs
+@@ -37,27 +37,22 @@ pub trait CursiveExt {
+
+ /// Creates a new Cursive root using a ncurses backend.
+ #[cfg(feature = "ncurses-backend")]
+- #[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "ncurses-backend")))]
+ fn run_ncurses(&mut self) -> std::io::Result<()>;
+
+ /// Creates a new Cursive root using a pancurses backend.
+ #[cfg(feature = "pancurses-backend")]
+- #[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "pancurses-backend")))]
+ fn run_pancurses(&mut self) -> std::io::Result<()>;
+
+ /// Creates a new Cursive root using a termion backend.
+ #[cfg(feature = "termion-backend")]
+- #[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "termion-backend")))]
+ fn run_termion(&mut self) -> std::io::Result<()>;
+
+ /// Creates a new Cursive root using a crossterm backend.
+ #[cfg(feature = "crossterm-backend")]
+- #[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "crossterm-backend")))]
+ fn run_crossterm(&mut self) -> Result<(), crossterm::ErrorKind>;
+
+ /// Creates a new Cursive root using a bear-lib-terminal backend.
+ #[cfg(feature = "blt-backend")]
+- #[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "blt-backend")))]
+ fn run_blt(&mut self);
+ }
+
+@@ -82,31 +77,26 @@ impl CursiveExt for cursive_core::Cursive {
+ }
+
+ #[cfg(feature = "ncurses-backend")]
+- #[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "curses-backend")))]
+ fn run_ncurses(&mut self) -> std::io::Result<()> {
+ self.try_run_with(crate::backends::curses::n::Backend::init)
+ }
+
+ #[cfg(feature = "pancurses-backend")]
+- #[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "pancurses-backend")))]
+ fn run_pancurses(&mut self) -> std::io::Result<()> {
+ self.try_run_with(crate::backends::curses::pan::Backend::init)
+ }
+
+ #[cfg(feature = "termion-backend")]
+- #[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "termion-backend")))]
+ fn run_termion(&mut self) -> std::io::Result<()> {
+ self.try_run_with(crate::backends::termion::Backend::init)
+ }
+
+ #[cfg(feature = "crossterm-backend")]
+- #[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "crossterm-backend")))]
+ fn run_crossterm(&mut self) -> Result<(), crossterm::ErrorKind> {
+ self.try_run_with(crate::backends::crossterm::Backend::init)
+ }
+
+ #[cfg(feature = "blt-backend")]
+- #[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "blt-backend")))]
+ fn run_blt(&mut self) {
+ self.run_with(crate::backends::blt::Backend::init)
+ }
+diff --git a/src/cursive_runnable.rs b/src/cursive_runnable.rs
+index 52a975b..1912ab5 100644
+--- a/src/cursive_runnable.rs
++++ b/src/cursive_runnable.rs
+@@ -145,7 +145,6 @@ impl CursiveRunnable {
+ ///
+ /// _Requires the `ncurses-backend` feature._
+ #[cfg(feature = "ncurses-backend")]
+- #[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "ncurses-backend")))]
+ pub fn ncurses() -> Self {
+ Self::new(backends::curses::n::Backend::init)
+ }
+@@ -154,7 +153,6 @@ impl CursiveRunnable {
+ ///
+ /// _Requires the `panncurses-backend` feature._
+ #[cfg(feature = "pancurses-backend")]
+- #[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "pancurses-backend")))]
+ pub fn pancurses() -> Self {
+ Self::new(backends::curses::pan::Backend::init)
+ }
+@@ -163,7 +161,6 @@ impl CursiveRunnable {
+ ///
+ /// _Requires the `termion-backend` feature._
+ #[cfg(feature = "termion-backend")]
+- #[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "termion-backend")))]
+ pub fn termion() -> Self {
+ Self::new(backends::termion::Backend::init)
+ }
+@@ -172,7 +169,6 @@ impl CursiveRunnable {
+ ///
+ /// _Requires the `crossterm-backend` feature._
+ #[cfg(feature = "crossterm-backend")]
+- #[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "crossterm-backend")))]
+ pub fn crossterm() -> Self {
+ Self::new(backends::crossterm::Backend::init)
+ }
+@@ -181,7 +177,6 @@ impl CursiveRunnable {
+ ///
+ /// _Requires the `blt-backend` feature._
+ #[cfg(feature = "blt-backend")]
+- #[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "blt-backend")))]
+ pub fn blt() -> Self {
+ Self::new::<std::convert::Infallible, _>(|| {
+ Ok(backends::blt::Backend::init())
+diff --git a/src/lib.rs b/src/lib.rs
+index 939e4f8..8d12d3a 100644
+--- a/src/lib.rs
++++ b/src/lib.rs
+@@ -63,7 +63,6 @@
+ //!
+ //! [`cursive::theme`]: ./theme/index.html
+ #![deny(missing_docs)]
+-#![cfg_attr(feature = "doc-cfg", feature(doc_cfg))]
+
+ pub use cursive_core::*;
+
+@@ -97,35 +96,30 @@ pub fn default() -> CursiveRunnable {
+
+ /// Creates a new Cursive root using a ncurses backend.
+ #[cfg(feature = "ncurses-backend")]
+-#[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "ncurses-backend")))]
+ pub fn ncurses() -> CursiveRunnable {
+ CursiveRunnable::ncurses()
+ }
+
+ /// Creates a new Cursive root using a pancurses backend.
+ #[cfg(feature = "pancurses-backend")]
+-#[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "pancurses-backend")))]
+ pub fn pancurses() -> CursiveRunnable {
+ CursiveRunnable::pancurses()
+ }
+
+ /// Creates a new Cursive root using a termion backend.
+ #[cfg(feature = "termion-backend")]
+-#[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "termion-backend")))]
+ pub fn termion() -> CursiveRunnable {
+ CursiveRunnable::termion()
+ }
+
+ /// Creates a new Cursive root using a crossterm backend.
+ #[cfg(feature = "crossterm-backend")]
+-#[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "crossterm-backend")))]
+ pub fn crossterm() -> CursiveRunnable {
+ CursiveRunnable::crossterm()
+ }
+
+ /// Creates a new Cursive root using a bear-lib-terminal backend.
+ #[cfg(feature = "blt-backend")]
+-#[cfg_attr(feature = "doc-cfg", doc(cfg(feature = "blt-backend")))]
+ pub fn blt() -> CursiveRunnable {
+ CursiveRunnable::blt()
+ }
--- /dev/null
+diff --git a/Cargo.toml b/Cargo.toml
+index c4637a0..cd70eb4 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -42,10 +42,6 @@ required-features = ["toml"]
+ [dependencies.ahash]
+ version = "0.7"
+
+-[dependencies.bear-lib-terminal]
+-version = "2"
+-optional = true
+-
+ [dependencies.cfg-if]
+ version = "1"
+
+@@ -57,7 +53,7 @@ version = "0.24"
+ optional = true
+
+ [dependencies.cursive_core]
+-version = "0.3.0"
++version = "0.3"
+
+ [dependencies.lazy_static]
+ version = "1"
+@@ -72,16 +69,6 @@ version = "0.4"
+ version = "1.0"
+ optional = true
+
+-[dependencies.ncurses]
+-version = "5.99.0"
+-features = ["wide"]
+-optional = true
+-
+-[dependencies.pancurses]
+-version = "0.17"
+-features = ["wide"]
+-optional = true
+-
+ [dependencies.term_size]
+ version = "0.3"
+ optional = true
+@@ -106,21 +93,10 @@ version = "0.2"
+ version = "0.8"
+
+ [features]
+-blt-backend = ["bear-lib-terminal"]
+ crossterm-backend = ["crossterm"]
+-default = ["ncurses-backend"]
++default = ["crossterm-backend"]
+ doc-cfg = ["cursive_core/doc-cfg"]
+ markdown = ["cursive_core/markdown"]
+-ncurses-backend = [
+- "ncurses",
+- "maplit",
+- "term_size",
+-]
+-pancurses-backend = [
+- "pancurses",
+- "maplit",
+- "term_size",
+-]
+ termion-backend = ["termion"]
+ toml = ["cursive_core/toml"]
+ unstable_scroll = []
--- /dev/null
+use-wasmer-enumset-instead-of-enumset.patch
+remove-terminals-not-in-debian.patch
+upgrade-to-crossterm-0.25.patch
+remove-nightly-feature.patch
--- /dev/null
+diff --git a/Cargo.toml b/Cargo.toml
+index cd70eb4..dfd7589 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -49,7 +49,7 @@ version = "1"
+ version = "0.5"
+
+ [dependencies.crossterm]
+-version = "0.24"
++version = "0.25"
+ optional = true
+
+ [dependencies.cursive_core]
+diff --git a/src/backends/crossterm.rs b/src/backends/crossterm.rs
+index ead651e..4fb301c 100644
+--- a/src/backends/crossterm.rs
++++ b/src/backends/crossterm.rs
+@@ -58,8 +58,8 @@ fn translate_button(button: CMouseButton) -> MouseButton {
+ }
+ }
+
+-fn translate_key(code: KeyCode) -> Key {
+- match code {
++fn translate_key(code: KeyCode) -> Option<Key> {
++ Some(match code {
+ KeyCode::Esc => Key::Esc,
+ KeyCode::Backspace => Key::Backspace,
+ KeyCode::Left => Key::Left,
+@@ -76,12 +76,12 @@ fn translate_key(code: KeyCode) -> Key {
+ KeyCode::Tab => Key::Tab,
+ KeyCode::F(n) => Key::from_f(n),
+ KeyCode::BackTab => Key::Tab, /* not supported */
+- KeyCode::Char(_) => Key::Tab, /* is handled at `Event` level, use tab as default */
+- KeyCode::Null => Key::Tab, /* is handled at `Event` level, use tab as default */
+- }
++ // These should never occur.
++ _ => return None,
++ })
+ }
+
+-fn translate_event(event: CKeyEvent) -> Event {
++fn translate_event(event: CKeyEvent) -> Option<Event> {
+ const CTRL_ALT: KeyModifiers = KeyModifiers::from_bits_truncate(
+ KeyModifiers::CONTROL.bits() | KeyModifiers::ALT.bits(),
+ );
+@@ -92,19 +92,22 @@ fn translate_event(event: CKeyEvent) -> Event {
+ KeyModifiers::ALT.bits() | KeyModifiers::SHIFT.bits(),
+ );
+
+- match event {
++ Some(match event {
+ // Handle Char + modifier.
+ CKeyEvent {
+ modifiers: KeyModifiers::CONTROL,
+ code: KeyCode::Char(c),
++ ..
+ } => Event::CtrlChar(c),
+ CKeyEvent {
+ modifiers: KeyModifiers::ALT,
+ code: KeyCode::Char(c),
++ ..
+ } => Event::AltChar(c),
+ CKeyEvent {
+ modifiers: KeyModifiers::SHIFT,
+ code: KeyCode::Char(c),
++ ..
+ } => Event::Char(c),
+ CKeyEvent {
+ code: KeyCode::Char(c),
+@@ -122,33 +125,39 @@ fn translate_event(event: CKeyEvent) -> Event {
+ CKeyEvent {
+ modifiers: CTRL_ALT,
+ code,
+- } => Event::CtrlAlt(translate_key(code)),
++ ..
++ } => Event::CtrlAlt(translate_key(code)?),
+ CKeyEvent {
+ modifiers: CTRL_SHIFT,
+ code,
+- } => Event::CtrlShift(translate_key(code)),
++ ..
++ } => Event::CtrlShift(translate_key(code)?),
+ CKeyEvent {
+ modifiers: ALT_SHIFT,
+ code,
+- } => Event::AltShift(translate_key(code)),
++ ..
++ } => Event::AltShift(translate_key(code)?),
+
+ // Handle key + single modifier
+ CKeyEvent {
+ modifiers: KeyModifiers::CONTROL,
+ code,
+- } => Event::Ctrl(translate_key(code)),
++ ..
++ } => Event::Ctrl(translate_key(code)?),
+ CKeyEvent {
+ modifiers: KeyModifiers::ALT,
+ code,
+- } => Event::Alt(translate_key(code)),
++ ..
++ } => Event::Alt(translate_key(code)?),
+ CKeyEvent {
+ modifiers: KeyModifiers::SHIFT,
+ code,
+- } => Event::Shift(translate_key(code)),
++ ..
++ } => Event::Shift(translate_key(code)?),
+
+ // All other keys.
+- CKeyEvent { code, .. } => Event::Key(translate_key(code)),
+- }
++ CKeyEvent { code, .. } => Event::Key(translate_key(code)?),
++ })
+ }
+
+ fn translate_color(base_color: theme::Color) -> Color {
+@@ -241,7 +250,7 @@ impl Backend {
+
+ fn map_key(&mut self, event: CEvent) -> Option<Event> {
+ Some(match event {
+- CEvent::Key(key_event) => translate_event(key_event),
++ CEvent::Key(key_event) => translate_event(key_event)?,
+ CEvent::Mouse(CMouseEvent {
+ kind,
+ column,
+@@ -273,6 +282,10 @@ impl Backend {
+ }
+ }
+ CEvent::Resize(_, _) => Event::WindowResize,
++ CEvent::Paste(_) => {
++ unreachable!("Did not enable bracketed paste.")
++ }
++ CEvent::FocusGained | CEvent::FocusLost => return None,
+ })
+ }
+ }
--- /dev/null
+diff --git a/src/backends/puppet/observed.rs b/src/backends/puppet/observed.rs
+index 62f7c02..aa203ef 100644
+--- a/src/backends/puppet/observed.rs
++++ b/src/backends/puppet/observed.rs
+@@ -1,5 +1,5 @@
+ //! Structs representing output of puppet backend
+-use crate::reexports::enumset::EnumSet;
++use crate::reexports::wasmer_enumset::EnumSet;
+ use crate::theme::ColorPair;
+ use crate::theme::Effect;
+ use crate::Vec2;
+diff --git a/src/backends/puppet/static_values.rs b/src/backends/puppet/static_values.rs
+index 608f352..bd77c7c 100644
+--- a/src/backends/puppet/static_values.rs
++++ b/src/backends/puppet/static_values.rs
+@@ -1,7 +1,7 @@
+ /// Some default values to Puppet backend.
+ use lazy_static::lazy_static;
+
+-use crate::reexports::enumset::EnumSet;
++use crate::reexports::wasmer_enumset::EnumSet;
+ use crate::theme::ColorPair;
+ use crate::theme::{Color, Effect};
+ use crate::Vec2;