o
    0c                     @   s  d Z ddlmZ ddlZddlZddlZddlZddlZddl	m
Z
 g dZdZG dd deZd	d
 Zdd Zdd Zdd Zd ddZdd Zdd ZedkrddlZe Ze ZedZejed edZejed ejde dd ejde d e! Z"e"e" dS dS )!z,Tools for invoking editors programmatically.    )print_functionN)find_executable)edit
get_editorEditorErrorz1.0.4c                   @   s   e Zd ZdS )r   N)__name__
__module____qualname__ r
   r
   </var/www/html/gps/gps/lib/python3.10/site-packages/editor.pyr      s    r   c                   C   s   g dS )N)editorvimemacsnanor
   r
   r
   r
   r   get_default_editors   s   r   c                 C   s@   | dv rddgS | dkrdgS | dkrddgS | d	krd
gS g S )N)r   gvimz	vim.basiczvim.tinyz-fz-or   z-nwgeditz-wz--new-windowr   z-Rr
   )r   r
   r
   r   get_editor_args%   s   r   c                  C   sL   t jdpt jd} | r| S t D ]}t|}|d ur!|  S qtd)NVISUALEDITORz[Unable to find a viable editor on this system.Please consider setting your $EDITOR variable)osenvirongetr   r   r   )r   edpathr
   r
   r   r   6   s   
r   c                   C   s   t jdkrdS dS )Nwin32zCON:z/dev/tty)sysplatformr
   r
   r
   r   get_tty_filenameF   s   
r    c           
      C   s  t  }|gttjtj| }|d u r!tj o tj	  }| d u r.t
j|d}|j} |d urVt|dr;| }t| dd}|| W d    n1 sQw   Y  || g7 }d }|rett d}tj|d|d}	|	  t| dd}| W  d    S 1 sw   Y  d S )N)suffixencodewb)modeT)	close_fdsstdoutrb)r   r   r   r   basenamerealpathr   stdinisattyr%   tempfileNamedTemporaryFilenamehasattrr!   openwriter   
subprocessPopencommunicateread)
filenamecontentsuse_ttyr    r   argstmpfr%   procr
   r
   r   r   L   s,   

$r   c                 C   s   t t  d S )N)printr   )nsr
   r
   r   _get_editorl   s   r>   c                 C   s2   | j }|d ur|t }tt| j|d d S )N)r5   r6   )r6   r!   localegetpreferredencodingr<   r   r   )r=   r6   r
   r
   r   _editp   s   rA   __main__z
get-editor)cmdr   ?)typenargsz
--contents)rE   )NNNr   )#__doc__
__future__r   r   r?   os.pathr   r1   r+   distutils.spawnr   __all____version__RuntimeErrorr   r   r   r   r   r   r>   rA   r   argparseArgumentParserapadd_subparserssp
add_parserrC   set_defaultsadd_argumentstr
parse_argsr=   r
   r
   r
   r   <module>   s>   

 

