Cyberduck Mountain Duck CLI

Changeset 42328


Ignore:
Timestamp:
Aug 13, 2017 10:28:12 AM (11 months ago)
Author:
dkocher
Message:

Disable use of java.io.Console on Windows. Fix #10043.

Location:
shelves/12.08.2017
Files:
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • shelves/12.08.2017/cli/src/main/java/ch/cyberduck/cli/Console.java

    r35652 r42328  
    3636public class Console {
    3737
    38     private final java.io.Console console
    39             = System.console();
     38    private final java.io.Console console;
    4039
    4140    private final PrintStream out
     
    4443    private static final Semaphore lock
    4544            = new Semaphore(1);
     45
     46    public Console() {
     47        switch(Factory.Platform.getDefault()) {
     48            case windows:
     49                console = null;
     50                break;
     51            default:
     52                console = System.console();
     53                break;
     54        }
     55    }
    4656
    4757    public String readLine(String format, Object... args) throws ConnectionCanceledException {
     
    7787            lock.acquire();
    7888            if(console != null) {
    79                 switch(Factory.Platform.getDefault()) {
    80                     case windows:
    81                         break;
    82                     default:
    83                         final PrintWriter writer = console.writer();
    84                         if(Arrays.asList(args).isEmpty()) {
    85                             writer.print(format);
    86                         }
    87                         else {
    88                             writer.printf(format, args);
    89                         }
    90                         writer.flush();
    91                         return;
     89                final PrintWriter writer = console.writer();
     90                if(Arrays.asList(args).isEmpty()) {
     91                    writer.print(format);
    9292                }
    93             }
    94             if(Arrays.asList(args).isEmpty()) {
    95                 out.printf(format);
     93                else {
     94                    writer.printf(format, args);
     95                }
     96                writer.flush();
    9697            }
    9798            else {
    98                 out.printf(format, args);
     99                if(Arrays.asList(args).isEmpty()) {
     100                    out.printf(format);
     101                }
     102                else {
     103                    out.printf(format, args);
     104                }
     105                out.flush();
    99106            }
    100             out.flush();
    101107        }
    102108        catch(InterruptedException e) {
Note: See TracChangeset for help on using the changeset viewer.
swiss made software