Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ghc-brick for openSUSE:Factory 
checked in at 2024-07-22 17:16:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-brick (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-brick.new.17339 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-brick"

Mon Jul 22 17:16:07 2024 rev:29 rq:1188624 version:2.3.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-brick/ghc-brick.changes      2024-03-20 
21:15:48.297212144 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-brick.new.17339/ghc-brick.changes   
2024-07-22 17:16:40.070084960 +0200
@@ -1,0 +2,18 @@
+Sun Jun 30 16:04:50 UTC 2024 - Peter Simons <psim...@suse.com>
+
+- Update brick to version 2.3.2.
+  2.3.2
+  -----
+
+  Bug fixes:
+  * `FileBrowser`: if the `FileBrowser` was initialized with a `FilePath`
+    that ended in a slash, then if the user hit `Enter` on the `../` entry
+    to move to the parent directory, the only effect was the removal of
+    that trailing slash. This change trims the trailing slash so that the
+    expected move occurs whenever the `../` entry is selected.
+  * `Brick.Keybindings.Pretty.keybindingHelpWidget`: fixed a problem where
+    a key event with no name in a `KeyEvents` would cause a `fromJust`
+    exception. The pretty-printer now falls back to a placeholder
+    representation for such unnamed key events.
+
+-------------------------------------------------------------------

Old:
----
  brick-2.3.1.tar.gz

New:
----
  brick-2.3.2.tar.gz

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

Other differences:
------------------
++++++ ghc-brick.spec ++++++
--- /var/tmp/diff_new_pack.GB0j0a/_old  2024-07-22 17:16:41.458140811 +0200
+++ /var/tmp/diff_new_pack.GB0j0a/_new  2024-07-22 17:16:41.462140972 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package ghc-brick
 #
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -20,12 +20,13 @@
 %global pkgver %{pkg_name}-%{version}
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        2.3.1
+Version:        2.3.2
 Release:        0
 Summary:        A declarative terminal user interface library
 License:        BSD-3-Clause
 URL:            https://hackage.haskell.org/package/%{pkg_name}
 Source0:        
https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
+BuildRequires:  chrpath
 BuildRequires:  ghc-Cabal-devel
 BuildRequires:  ghc-base-devel
 BuildRequires:  ghc-base-prof
@@ -66,6 +67,8 @@
 BuildRequires:  ghc-text-zipper-prof
 BuildRequires:  ghc-unix-compat-devel
 BuildRequires:  ghc-unix-compat-prof
+BuildRequires:  ghc-unix-devel
+BuildRequires:  ghc-unix-prof
 BuildRequires:  ghc-vector-devel
 BuildRequires:  ghc-vector-prof
 BuildRequires:  ghc-vty-crossplatform-devel
@@ -132,6 +135,7 @@
 
 %install
 %ghc_lib_install
+%ghc_fix_rpath %{pkg_name}-%{version}
 
 %check
 %cabal_test
@@ -144,6 +148,7 @@
 
 %files -f %{name}.files
 %license LICENSE
+%{_bindir}/brick-unix-suspend-demo
 
 %files devel -f %{name}-devel.files
 %doc CHANGELOG.md README.md docs

++++++ brick-2.3.1.tar.gz -> brick-2.3.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/brick-2.3.1/CHANGELOG.md new/brick-2.3.2/CHANGELOG.md
--- old/brick-2.3.1/CHANGELOG.md        2001-09-09 03:46:40.000000000 +0200
+++ new/brick-2.3.2/CHANGELOG.md        2001-09-09 03:46:40.000000000 +0200
@@ -2,6 +2,20 @@
 Brick changelog
 ---------------
 
+2.3.2
+-----
+
+Bug fixes:
+* `FileBrowser`: if the `FileBrowser` was initialized with a `FilePath`
+  that ended in a slash, then if the user hit `Enter` on the `../` entry
+  to move to the parent directory, the only effect was the removal of
+  that trailing slash. This change trims the trailing slash so that the
+  expected move occurs whenever the `../` entry is selected.
+* `Brick.Keybindings.Pretty.keybindingHelpWidget`: fixed a problem where
+  a key event with no name in a `KeyEvents` would cause a `fromJust`
+  exception. The pretty-printer now falls back to a placeholder
+  representation for such unnamed key events.
+
 2.3.1
 -----
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/brick-2.3.1/README.md new/brick-2.3.2/README.md
--- old/brick-2.3.1/README.md   2001-09-09 03:46:40.000000000 +0200
+++ new/brick-2.3.2/README.md   2001-09-09 03:46:40.000000000 +0200
@@ -50,54 +50,56 @@
 
 | Project | Description |
 | ------- | ----------- |
-| [`tetris`](https://github.com/SamTay/tetris) | An implementation of the 
Tetris game |
-| [`gotta-go-fast`](https://github.com/callum-oakley/gotta-go-fast) | A typing 
tutor |
-| [`haskell-player`](https://github.com/potomak/haskell-player) | An `afplay` 
frontend |
-| [`mushu`](https://github.com/elaye/mushu) | An `MPD` client |
-| [`matterhorn`](https://github.com/matterhorn-chat/matterhorn) | A client for 
[Mattermost](https://about.mattermost.com/) |
-| [`viewprof`](https://github.com/maoe/viewprof) | A GHC profile viewer |
-| [`tart`](https://github.com/jtdaugherty/tart) | A mouse-driven ASCII art 
drawing program |
-| [`silly-joy`](https://github.com/rootmos/silly-joy) | An interpreter for Joy 
|
-| [`herms`](https://github.com/jackkiefer/herms) | A command-line tool for 
managing kitchen recipes |
-| [`purebred`](https://github.com/purebred-mua/purebred) | A mail user agent |
 | [`2048Haskell`](https://github.com/8Gitbrix/2048Haskell) | An implementation 
of the 2048 game |
+| [`babel-cards`](https://github.com/srhoulam/babel-cards) | A TUI 
spaced-repetition memorization tool. Similar to Anki. |
 | [`bhoogle`](https://github.com/andrevdm/bhoogle) | A 
[Hoogle](https://www.haskell.org/hoogle/) client |
+| [`brewsage`](https://github.com/gerdreiss/brewsage#readme) | A TUI for 
Homebrew |
+| 
[`brick-trading-journal`](https://codeberg.org/amano.kenji/brick-trading-journal)
 | A TUI program that calculates basic statistics from trades |
+| [`Brickudoku`](https://github.com/Thecentury/brickudoku) | A hybrid of 
Tetris and Sudoku |
+| [`cbookview`](https://github.com/mlang/chessIO) | A TUI for exploring 
polyglot chess opening book files |
 | [`clifm`](https://github.com/pasqu4le/clifm) | A file manager |
-| [`towerHanoi`](https://github.com/shajenM/projects/tree/master/towerHanoi) | 
Animated solutions to The Tower of Hanoi |
-| [`VOIDSPACE`](https://github.com/ChrisPenner/void-space) | A space-themed 
typing-tutor game |
-| [`solitaire`](https://github.com/ambuc/solitaire) | The card game |
-| [`sudoku-tui`](https://github.com/evanrelf/sudoku-tui) | A Sudoku 
implementation |
-| 
[`summoner-tui`](https://github.com/kowainik/summoner/tree/master/summoner-tui) 
| An interactive frontend to the Summoner tool |
-| [`wrapping-editor`](https://github.com/ta0kira/wrapping-editor) | An 
embeddable editor with support for Brick |
+| [`codenames-haskell`](https://github.com/VigneshN1997/codenames-haskell) | 
An implementation of the Codenames game |
+| [`fifteen`](https://github.com/benjaminselfridge/fifteen) | An 
implementation of the [15 puzzle](https://en.wikipedia.org/wiki/15_puzzle) |
+| [`ghcup`](https://www.haskell.org/ghcup/) | A TUI for `ghcup`, the Haskell 
toolchain manager |
 | [`git-brunch`](https://github.com/andys8/git-brunch) | A git branch checkout 
utility |
+| [`Giter`](https://gitlab.com/refaelsh/giter) | A UI wrapper around Git CLI 
inspired by [Magit](https://magit.vc/). |
+| [`gotta-go-fast`](https://github.com/callum-oakley/gotta-go-fast) | A typing 
tutor |
+| [`haradict`](https://github.com/srhoulam/haradict) | A TUI Arabic dictionary 
powered by [ElixirFM](https://github.com/otakar-smrz/elixir-fm) |
 | [`hascard`](https://github.com/Yvee1/hascard) | A program for reviewing 
"flash card" notes |
-| [`ttyme`](https://github.com/evuez/ttyme) | A TUI for 
[Harvest](https://www.getharvest.com/) |
-| [`ghcup`](https://www.haskell.org/ghcup/) | A TUI for `ghcup`, the Haskell 
toolchain manager |
-| [`cbookview`](https://github.com/mlang/chessIO) | A TUI for exploring 
polyglot chess opening book files |
-| [`thock`](https://github.com/rmehri01/thock) | A modern TUI typing game 
featuring online racing against friends |
-| [`fifteen`](https://github.com/benjaminselfridge/fifteen) | An 
implementation of the [15 puzzle](https://en.wikipedia.org/wiki/15_puzzle) |
+| [`haskell-player`](https://github.com/potomak/haskell-player) | An `afplay` 
frontend |
+| [`herms`](https://github.com/jackkiefer/herms) | A command-line tool for 
managing kitchen recipes |
+| [`hic-hac-hoe`](https://github.com/blastwind/hic-hac-hoe) | Play tic tac toe 
in terminal! |
+| [`hledger-iadd`](http://github.com/rootzlevel/hledger-iadd) | An interactive 
terminal UI for adding hledger journal entries |
+| [`hledger-ui`](https://github.com/simonmichael/hledger) | A terminal UI for 
the hledger accounting system. |
+| [`homodoro`](https://github.com/c0nradLC/homodoro) | A terminal application 
to use the pomodoro technique and keep track of daily tasks |
+| [`htyper`](https://github.com/Simon-Hostettler/htyper) | A typing speed test 
program |
+| [`hyahtzee2`](https://github.com/DamienCassou/hyahtzee2#readme) | Famous 
Yahtzee dice game |
+| [`kpxhs`](https://github.com/akazukin5151/kpxhs) | An interactive 
[Keepass](https://github.com/keepassxreboot/keepassxc/) database viewer |
+| [`matterhorn`](https://github.com/matterhorn-chat/matterhorn) | A client for 
[Mattermost](https://about.mattermost.com/) |
 | [`maze`](https://github.com/benjaminselfridge/maze) | A Brick-based maze 
game |
+| [`monalog`](https://github.com/goosedb/Monalog) | Terminal logs observer |
+| [`mushu`](https://github.com/elaye/mushu) | An `MPD` client |
+| [`mywork`](https://github.com/kquick/mywork) 
[[Hackage]](https://hackage.haskell.org/package/mywork) | A tool to keep track 
of the projects you are working on |
 | [`pboy`](https://github.com/2mol/pboy) | A tiny PDF organizer |
-| [`hyahtzee2`](https://github.com/DamienCassou/hyahtzee2#readme) | Famous 
Yahtzee dice game |
-| [`brewsage`](https://github.com/gerdreiss/brewsage#readme) | A TUI for 
Homebrew |
+| [`purebred`](https://github.com/purebred-mua/purebred) | A mail user agent |
 | [`sandwich`](https://codedownio.github.io/sandwich/) | A test framework with 
a TUI interface |
-| [`youbrick`](https://github.com/florentc/youbrick) | A feed aggregator and 
launcher for Youtube channels |
+| [`silly-joy`](https://github.com/rootmos/silly-joy) | An interpreter for Joy 
|
+| [`solitaire`](https://github.com/ambuc/solitaire) | The card game |
+| [`sudoku-tui`](https://github.com/evanrelf/sudoku-tui) | A Sudoku 
implementation |
+| 
[`summoner-tui`](https://github.com/kowainik/summoner/tree/master/summoner-tui) 
| An interactive frontend to the Summoner tool |
 | [`swarm`](https://github.com/byorgey/swarm/) | A 2D programming and resource 
gathering game |
-| [`hledger-ui`](https://github.com/simonmichael/hledger) | A terminal UI for 
the hledger accounting system. |
-| [`hledger-iadd`](http://github.com/rootzlevel/hledger-iadd) | An interactive 
terminal UI for adding hledger journal entries |
-| [`wordle`](https://github.com/ivanjermakov/wordle) | An implementation of 
the Wordle game |
-| [`kpxhs`](https://github.com/akazukin5151/kpxhs) | An interactive 
[Keepass](https://github.com/keepassxreboot/keepassxc/) database viewer |
-| [`htyper`](https://github.com/Simon-Hostettler/htyper) | A typing speed test 
program |
-| [`ullekha`](https://github.com/ajithnn/ullekha) | An interactive terminal 
notes/todo app with file/redis persistence |
-| [`mywork`](https://github.com/kquick/mywork) 
[[Hackage]](https://hackage.haskell.org/package/mywork) | A tool to keep track 
of the projects you are working on |
-| [`hic-hac-hoe`](https://github.com/blastwind/hic-hac-hoe) | Play tic tac toe 
in terminal! |
-| [`babel-cards`](https://github.com/srhoulam/babel-cards) | A TUI 
spaced-repetition memorization tool. Similar to Anki. |
-| [`codenames-haskell`](https://github.com/VigneshN1997/codenames-haskell) | 
An implementation of the Codenames game |
-| [`haradict`](https://github.com/srhoulam/haradict) | A TUI Arabic dictionary 
powered by [ElixirFM](https://github.com/otakar-smrz/elixir-fm) |
-| [`Giter`](https://gitlab.com/refaelsh/giter) | A UI wrapper around Git CLI 
inspired by [Magit](https://magit.vc/). |
-| [`Brickudoku`](https://github.com/Thecentury/brickudoku) | A hybrid of 
Tetris and Sudoku |
+| [`tart`](https://github.com/jtdaugherty/tart) | A mouse-driven ASCII art 
drawing program |
+| [`tetris`](https://github.com/SamTay/tetris) | An implementation of the 
Tetris game |
+| [`thock`](https://github.com/rmehri01/thock) | A modern TUI typing game 
featuring online racing against friends |
 | [`timeloop`](https://github.com/cdupont/timeloop) | A time-travelling 
demonstrator |
-| 
[`brick-trading-journal`](https://codeberg.org/amano.kenji/brick-trading-journal)
 | A TUI program that calculates basic statistics from trades |
+| [`towerHanoi`](https://github.com/shajenM/projects/tree/master/towerHanoi) | 
Animated solutions to The Tower of Hanoi |
+| [`ttyme`](https://github.com/evuez/ttyme) | A TUI for 
[Harvest](https://www.getharvest.com/) |
+| [`ullekha`](https://github.com/ajithnn/ullekha) | An interactive terminal 
notes/todo app with file/redis persistence |
+| [`viewprof`](https://github.com/maoe/viewprof) | A GHC profile viewer |
+| [`VOIDSPACE`](https://github.com/ChrisPenner/void-space) | A space-themed 
typing-tutor game |
+| [`wordle`](https://github.com/ivanjermakov/wordle) | An implementation of 
the Wordle game |
+| [`wrapping-editor`](https://github.com/ta0kira/wrapping-editor) | An 
embeddable editor with support for Brick |
+| [`youbrick`](https://github.com/florentc/youbrick) | A feed aggregator and 
launcher for Youtube channels |
 
 These third-party packages also extend `brick`:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/brick-2.3.1/brick.cabal new/brick-2.3.2/brick.cabal
--- old/brick-2.3.1/brick.cabal 2001-09-09 03:46:40.000000000 +0200
+++ new/brick-2.3.2/brick.cabal 2001-09-09 03:46:40.000000000 +0200
@@ -1,5 +1,5 @@
 name:                brick
-version:             2.3.1
+version:             2.3.2
 synopsis:            A declarative terminal user interface library
 description:
   Write terminal user interfaces (TUIs) painlessly with 'brick'! You
@@ -32,13 +32,22 @@
 license-file:        LICENSE
 author:              Jonathan Daugherty <cyg...@foobox.com>
 maintainer:          Jonathan Daugherty <cyg...@foobox.com>
-copyright:           (c) Jonathan Daugherty 2015-2023
+copyright:           (c) Jonathan Daugherty 2015-2024
 category:            Graphics
 build-type:          Simple
 cabal-version:       1.18
 Homepage:            https://github.com/jtdaugherty/brick/
 Bug-reports:         https://github.com/jtdaugherty/brick/issues
-tested-with:         GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, 
GHC == 8.10.7, GHC == 9.0.2, GHC == 9.2.4, GHC == 9.4.2
+tested-with:         GHC == 8.2.2
+                      || == 8.4.4
+                      || == 8.6.5
+                      || == 8.8.4
+                      || == 8.10.7
+                      || == 9.0.2
+                      || == 9.2.8
+                      || == 9.4.8
+                      || == 9.6.3
+                      || == 9.8.1
 
 extra-doc-files:     README.md,
                      docs/guide.rst,
@@ -484,6 +493,22 @@
                        text,
                        microlens
 
+executable brick-unix-suspend-demo
+  hs-source-dirs:      programs
+  ghc-options:         -threaded -Wall -Wcompat -O2
+  default-language:    Haskell2010
+  main-is:             UnixSuspendDemo.hs
+  build-depends:       base,
+                       brick,
+                       vty,
+                       text,
+                       vector,
+                       mtl,
+                       microlens >= 0.3.0.0,
+                       microlens-th,
+                       microlens-mtl,
+                       unix
+
 executable brick-edit-demo
   if !flag(demos)
     Buildable: False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/brick-2.3.1/programs/UnixSuspendDemo.hs 
new/brick-2.3.2/programs/UnixSuspendDemo.hs
--- old/brick-2.3.1/programs/UnixSuspendDemo.hs 1970-01-01 01:00:00.000000000 
+0100
+++ new/brick-2.3.2/programs/UnixSuspendDemo.hs 2001-09-09 03:46:40.000000000 
+0200
@@ -0,0 +1,33 @@
+module Main where
+
+import qualified Graphics.Vty as V
+
+import qualified Brick.Main as M
+import qualified Brick.Types as T
+import Brick.Widgets.Core (str)
+import qualified Brick.AttrMap as A
+import System.Posix.Signals
+
+drawUI :: () -> [T.Widget ()]
+drawUI () = [str "Press C-z to suspend or any other key to quit"]
+
+appEvent :: T.BrickEvent () e -> T.EventM () () ()
+appEvent (T.VtyEvent (V.EvKey (V.KChar 'z') [V.MCtrl])) = do
+    st <- T.get
+    M.suspendAndResume $ do
+        raiseSignal keyboardStop
+        return st
+appEvent _ =
+    M.halt
+
+theApp :: M.App () e ()
+theApp =
+    M.App { M.appDraw = drawUI
+          , M.appChooseCursor = M.neverShowCursor
+          , M.appHandleEvent = appEvent
+          , M.appStartEvent = return ()
+          , M.appAttrMap = const $ A.attrMap V.defAttr []
+          }
+
+main :: IO ()
+main = M.defaultMain theApp ()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/brick-2.3.1/src/Brick/Keybindings/Pretty.hs 
new/brick-2.3.2/src/Brick/Keybindings/Pretty.hs
--- old/brick-2.3.1/src/Brick/Keybindings/Pretty.hs     2001-09-09 
03:46:40.000000000 +0200
+++ new/brick-2.3.2/src/Brick/Keybindings/Pretty.hs     2001-09-09 
03:46:40.000000000 +0200
@@ -25,7 +25,6 @@
 
 import Brick
 import Data.List (sort, intersperse)
-import Data.Maybe (fromJust)
 #if !(MIN_VERSION_base(4,11,0))
 import Data.Monoid ((<>))
 #endif
@@ -124,19 +123,19 @@
           ByKey b ->
               (Comment "(non-customizable key)", [Verbatim $ ppBinding b])
           ByEvent ev ->
-              let name = fromJust $ keyEventName (keyConfigEvents kc) ev
+              let name = maybe (Comment "(unnamed)") Verbatim $ keyEventName 
(keyConfigEvents kc) ev
               in case lookupKeyConfigBindings kc ev of
                   Nothing ->
                       if not (null (allDefaultBindings kc ev))
-                      then (Verbatim name, Verbatim <$> ppBinding <$> 
allDefaultBindings kc ev)
-                      else (Verbatim name, unbound)
+                      then (name, Verbatim <$> ppBinding <$> 
allDefaultBindings kc ev)
+                      else (name, unbound)
                   Just Unbound ->
-                      (Verbatim name, unbound)
+                      (name, unbound)
                   Just (BindingList bs) ->
                       let result = if not (null bs)
                                    then Verbatim <$> ppBinding <$> bs
                                    else unbound
-                      in (Verbatim name, result)
+                      in (name, result)
   in (label, handlerDescription $ kehHandler h, evText)
 
 -- | Build a 'Widget' displaying key binding information for a single
@@ -164,8 +163,8 @@
         getText (Comment s) = s
         getText (Verbatim s) = s
         label = withDefAttr eventNameAttr $ case evName of
-            Comment s -> txt s -- TODO: was "; " <> s
-            Verbatim s -> txt s -- TODO: was: emph $ txt s
+            Comment s -> txt s
+            Verbatim s -> txt s
     in vBox [ withDefAttr eventDescriptionAttr $ txt desc
             , label <+> txt " = " <+> withDefAttr keybindingAttr (txt evText)
             ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/brick-2.3.1/src/Brick/Widgets/FileBrowser.hs 
new/brick-2.3.2/src/Brick/Widgets/FileBrowser.hs
--- old/brick-2.3.1/src/Brick/Widgets/FileBrowser.hs    2001-09-09 
03:46:40.000000000 +0200
+++ new/brick-2.3.2/src/Brick/Widgets/FileBrowser.hs    2001-09-09 
03:46:40.000000000 +0200
@@ -154,7 +154,7 @@
 import Data.Monoid
 #endif
 import Data.Int (Int64)
-import Data.List (sortBy, isSuffixOf)
+import Data.List (sortBy, isSuffixOf, dropWhileEnd)
 import qualified Data.Set as Set
 import qualified Data.Vector as V
 import Lens.Micro
@@ -282,7 +282,7 @@
                -> IO (FileBrowser n)
 newFileBrowser selPredicate name mCwd = do
     initialCwd <- FP.normalise <$> case mCwd of
-        Just path -> return path
+        Just path -> return $ removeTrailingSlash path
         Nothing -> D.getCurrentDirectory
 
     let b = FileBrowser { fileBrowserWorkingDirectory = initialCwd
@@ -298,6 +298,22 @@
 
     setWorkingDirectory initialCwd b
 
+-- | Removes any trailing slash(es) from the supplied FilePath (which should
+-- indicate a directory).  This does not remove a sole slash indicating the 
root
+-- directory.
+--
+-- This is done because if the FileBrowser is initialized with an initial 
working
+-- directory that ends in a slash, then selecting the "../" entry to move to 
the
+-- parent directory will cause the removal of the trailing slash, but it will 
not
+-- otherwise cause any change, misleading the user into thinking no action was
+-- taken (the disappearance of the trailing slash is unlikely to be noticed).
+-- All subsequent parent directory selection operations are processed normally,
+-- and the 'fileBrowserWorkingDirectory' never ends in a trailing slash
+-- thereafter (except at the root directory).
+removeTrailingSlash :: FilePath -> FilePath
+removeTrailingSlash "/" = "/"
+removeTrailingSlash d = dropWhileEnd (== '/') d
+
 -- | A file entry selector that permits selection of all file entries
 -- except directories. Use this if you want users to be able to navigate
 -- directories in the browser. If you want users to be able to select

Reply via email to