U �Wn � @ s d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZm Z m Z d dlmZmZm Z mZmZmZmZmZmZmZmZ zd dlmZ ejZejZW n ek r� dZY nX d dlmZmZ ee�ZejZejZej Z ej!Z!ej"Z"ee�dejf�Z#eee�eee ��dej$f�Z%ed�Z&ed �Z'ed �Z(d Z)dZ*d Z+dZ,d Z-d Z.dZ/dZ0dZ1dZ2G dd� dej3�Z4edk�r~dZ5n d+dd�Z5G dd� de j6�Z7G dd� de7�Z8G dd� de7�Z9G dd� de:�Z;dd� Z<d d!� Z=d"d#� Z>e �r�d$d%� Z?e?� Z@d&d'� ZAe<e=e>d(�ZBd)d*� ZCdS ),� N)�_NonClosingTextIOWrapper� text_type�PY2)�byref�POINTER�c_int�c_char�c_char_p�c_void_p� py_object� c_ssize_t�c_ulong�windll�WINFUNCTYPE)� pythonapi)�LPWSTR�LPCWSTR�GetCommandLineW�CommandLineToArgvWi����i����i�� � i� � � i� c @ sj e Zd Zdefdefdefdefdefdefdefdefd efd efdefgZ e rfe �dd ed f� dS )� Py_buffer�buf�obj�len�itemsize�readonly�ndim�format�shape�strides� suboffsetsZinternal���Z smalltabler N)�__name__� __module__�__qualname__r r r r r � c_ssize_pZ_fields_r �insert� r* r* �/_winconsole.pyr @ s �r Fc C sT t � }|rtnt}tt| �t|�|� zt|j }|� |j �W �S tt|�� X d S �N)r �PyBUF_WRITABLE�PyBUF_SIMPLE�PyObject_GetBufferr r �PyBuffer_Releaser r Zfrom_addressr )r �writabler �flagsZbuffer_typer* r* r+ � get_bufferX s r3 c @ s e Zd Zdd� Zdd� ZdS )�_WindowsConsoleRawIOBasec C s || _ d S r, )�handle)�selfr5 r* r* r+ �__init__e s z!_WindowsConsoleRawIOBase.__init__c C s t j�| � dS �NT)�io� RawIOBase�isatty�r6 r* r* r+ r; h s z_WindowsConsoleRawIOBase.isattyN)r% r&