src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/impl/AbstractWindowsTerminal.java
changeset 58903 eeb1c0da2126
parent 53840 9a0fd1f82406
equal deleted inserted replaced
58902:197238c30630 58903:eeb1c0da2126
     1 /*
     1 /*
     2  * Copyright (c) 2002-2018, the original author or authors.
     2  * Copyright (c) 2002-2019, the original author or authors.
     3  *
     3  *
     4  * This software is distributable under the BSD license. See the terms of the
     4  * This software is distributable under the BSD license. See the terms of the
     5  * BSD license in the documentation provided with this software.
     5  * BSD license in the documentation provided with this software.
     6  *
     6  *
     7  * http://www.opensource.org/licenses/bsd-license.php
     7  * https://opensource.org/licenses/BSD-3-Clause
     8  */
     8  */
     9 package jdk.internal.org.jline.terminal.impl;
     9 package jdk.internal.org.jline.terminal.impl;
    10 
    10 
    11 import jdk.internal.org.jline.terminal.Attributes;
    11 import jdk.internal.org.jline.terminal.Attributes;
    12 import jdk.internal.org.jline.terminal.Size;
    12 import jdk.internal.org.jline.terminal.Size;
    19 import jdk.internal.org.jline.utils.NonBlockingReader;
    19 import jdk.internal.org.jline.utils.NonBlockingReader;
    20 import jdk.internal.org.jline.utils.ShutdownHooks;
    20 import jdk.internal.org.jline.utils.ShutdownHooks;
    21 import jdk.internal.org.jline.utils.Signals;
    21 import jdk.internal.org.jline.utils.Signals;
    22 import jdk.internal.org.jline.utils.WriterOutputStream;
    22 import jdk.internal.org.jline.utils.WriterOutputStream;
    23 
    23 
    24 import java.io.IOError;
       
    25 import java.io.IOException;
    24 import java.io.IOException;
    26 import java.io.InputStream;
    25 import java.io.InputStream;
    27 import java.io.OutputStream;
    26 import java.io.OutputStream;
    28 import java.io.PrintWriter;
    27 import java.io.PrintWriter;
    29 import java.io.StringWriter;
       
    30 import java.io.Writer;
    28 import java.io.Writer;
    31 import java.nio.charset.Charset;
    29 import java.nio.charset.Charset;
    32 import java.nio.charset.StandardCharsets;
    30 import java.nio.charset.StandardCharsets;
    33 import java.util.HashMap;
    31 import java.util.HashMap;
    34 import java.util.Map;
    32 import java.util.Map;
    48  */
    46  */
    49 public abstract class AbstractWindowsTerminal extends AbstractTerminal {
    47 public abstract class AbstractWindowsTerminal extends AbstractTerminal {
    50 
    48 
    51     public static final String TYPE_WINDOWS = "windows";
    49     public static final String TYPE_WINDOWS = "windows";
    52     public static final String TYPE_WINDOWS_256_COLOR = "windows-256color";
    50     public static final String TYPE_WINDOWS_256_COLOR = "windows-256color";
       
    51     public static final String TYPE_WINDOWS_CONEMU = "windows-conemu";
    53     public static final String TYPE_WINDOWS_VTP = "windows-vtp";
    52     public static final String TYPE_WINDOWS_VTP = "windows-vtp";
    54 
    53 
    55     public static final int ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004;
    54     public static final int ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004;
    56 
    55 
    57     private static final int UTF8_CODE_PAGE = 65001;
    56     private static final int UTF8_CODE_PAGE = 65001;
   108             }
   107             }
   109         }
   108         }
   110         closer = this::close;
   109         closer = this::close;
   111         ShutdownHooks.add(closer);
   110         ShutdownHooks.add(closer);
   112         // ConEMU extended fonts support
   111         // ConEMU extended fonts support
   113         if (TYPE_WINDOWS_256_COLOR.equals(getType())
   112         if (TYPE_WINDOWS_CONEMU.equals(getType())
   114                 && !Boolean.getBoolean("org.jline.terminal.conemu.disable-activate")) {
   113                 && !Boolean.getBoolean("org.jline.terminal.conemu.disable-activate")) {
   115             writer.write("\u001b[9999E");
   114             writer.write("\u001b[9999E");
   116             writer.flush();
   115             writer.flush();
   117         }
   116         }
   118     }
   117     }