@@ -48,10 +48,15 @@ handler_txtprogressbar <- function(style = 3L, file = stderr(), intrusiveness =
4848 reporter <- local({
4949 pb <- NULL
5050
51- make_pb <- function (... ) {
51+ make_pb <- function (max , ... ) {
5252 if (! is.null(pb )) return (pb )
53- args <- c(list (... ), backend_args )
54- pb <<- do.call(txtProgressBar , args = args )
53+ # # SPECIAL CASE: utils::txtProgressBar() does not support max == min
54+ if (max == 0 ) {
55+ pb <<- voidProgressBar()
56+ } else {
57+ args <- c(list (max = max , ... ), backend_args )
58+ pb <<- do.call(txtProgressBar , args = args )
59+ }
5560 pb
5661 }
5762
@@ -115,9 +120,17 @@ handler_txtprogressbar <- function(style = 3L, file = stderr(), intrusiveness =
115120}
116121
117122
123+ # ' @importFrom utils txtProgressBar
124+ voidProgressBar <- function (... ) {
125+ pb <- txtProgressBar()
126+ class(pb ) <- c(" voidProgressBar" , class(pb ))
127+ pb
128+ }
129+
118130
119131# # Erase a utils::txtProgressBar()
120132eraseTxtProgressBar <- function (pb ) {
133+ if (inherits(pb , " voidProgressBar" )) return ()
121134 pb_env <- environment(pb $ getVal )
122135 with(pb_env , {
123136 if (style == 1L || style == 2L ) {
@@ -136,6 +149,7 @@ eraseTxtProgressBar <- function(pb) {
136149
137150# # Redraw a utils::txtProgressBar()
138151redrawTxtProgressBar <- function (pb ) {
152+ if (inherits(pb , " voidProgressBar" )) return ()
139153 setTxtProgressBar(pb , value = pb $ getVal())
140154}
141155
0 commit comments