
    *)h!                         S SK r S SKr\R                  S    S:  a  \rS rS r " S S5      r " S S5      r " S	 S
5      r	 " S S5      r
S rS r " S S\ R                  5      r\" 5         g)    N   c                 J    [         R                  " 5       R                  U 5      $ N)gdbselected_frameread_var)symnames    #/usr/share/glib-2.0/gdb/glib_gdb.pyread_global_varr   	   s    ((11    c                    U c  g [        U 5      n U S:X  a  g S n [        S5      n [        [        S5      5      nUb  X:  a   X    R                  5       $ g ! [        R                   a     N2f = f! [         aP     [        S5      n [        [        S5      5      n Nc! [        R                   a      Nzf = f! [         a      g f = ff = f! [        R                   a    [        SU  35         g f = f)Nr   quarksquark_seq_idg_quarksg_quark_seq_idzInvalid quark )longr   r   error	ExceptionstringMemoryErrorprint)quarkmax_qvals      r
   g_quark_to_stringr      s   }KEzEh'	89E }	,:$$&& ! yy 		 	!*-C_-=>?99  		  	,N5'*+	,sv   A0 A C A-*A0 ,A--A0 0
C
;B8BB51B84B55B88
CC
CC
"C21C2c                   $    \ rS rSrSrS rS rSrg)GListNodePrinter-   zPrints a GList nodec                     Xl         g r   r   selfr   s     r
   __init__GListNodePrinter.__init__0       r   c                     S[        U R                  S   5      [        U R                  S   5      [        U R                  S   5      4-  $ )Nz{data=%s, next=0x%x, prev=0x%x}datanextprevstrr   r   r"   s    r
   	to_stringGListNodePrinter.to_string3   sG    0 !&!"&!"4
 
 	
r   r    N__name__
__module____qualname____firstlineno____doc__r#   r-   __static_attributes__ r   r
   r   r   -   s    
r   r   c                   $    \ rS rSrSrS rS rSrg)GSListNodePrinter;   zPrints a GSList nodec                     Xl         g r   r    r!   s     r
   r#   GSListNodePrinter.__init__>   r%   r   c                 h    S[        U R                  S   5      [        U R                  S   5      4-  $ )Nz{data=%s, next=0x%x}r'   r(   r*   r,   s    r
   r-   GSListNodePrinter.to_stringA   s.    %TXXf-=)>TXXfEU@V(WWWr   r    Nr/   r6   r   r
   r8   r8   ;   s    Xr   r8   c                   D    \ rS rSrSr " S S5      rS rS rS rS r	S	r
g
)GListPrinterE   zPrints a GListc                   *    \ rS rSrS rS rS r\rSrg)GListPrinter._iteratorH   c                 *    Xl         X l        SU l        g )Nr   )linklisttypecount)r"   headrF   s      r
   r#   GListPrinter._iterator.__init__I   s    I$MDJr   c                     U $ r   r6   r,   s    r
   __iter__GListPrinter._iterator.__iter__N       Kr   c                     U R                   S:X  a  [        eU R                   S   nU R                   S   U l         U R                  nU R                  S-   U l        SU-  U4$ )Nr   r'   r(      z[%d])rE   StopIterationrG   )r"   r'   rG   s      r
   r(   GListPrinter._iterator.nextQ   sX    yyA~##99V$D		&)DIJJEaDJUND))r   )rG   rE   rF   N)	r0   r1   r2   r3   r#   rK   r(   __next__r5   r6   r   r
   	_iteratorrB   H   s    	
		* r   rS   c                     Xl         X l        g r   )r   rF   )r"   r   rF   s      r
   r#   GListPrinter.__init__\   s     r   c                 N    U R                  U R                  U R                  5      $ r   )rS   r   rF   r,   s    r
   childrenGListPrinter.children`   s    ~~dhh66r   c                 2    S[        U R                  5      -  $ Nz0x%xr   r   r,   s    r
   r-   GListPrinter.to_stringc       dhh((r   c                     g)Narrayr6   r,   s    r
   display_hintGListPrinter.display_hintf   s    r   )rF   r   Nr0   r1   r2   r3   r4   rS   r#   rW   r-   r`   r5   r6   r   r
   r?   r?   E   s#     (!7)r   r?   c                   D    \ rS rSrSr " S S5      rS rS rS rS r	S	r
g
)GHashPrinterj   zPrints a GHashTablec                   >    \ rS rSr " S S5      rS rS rS r\rSr	g)	GHashPrinter._iteratorm   c                        \ rS rSrS rS rSrg)%GHashPrinter._iterator._pointer_arrayn   c                     X l         [        R                  " S5      U l        U R                   (       a  U R                  O[        R                  " S5      nUR	                  UR                  5       5      U l        g )Ngpointerguint)
_big_itemsr   lookup_type_gpointer_typecastpointer_items)r"   ptr	big_items	item_types       r
   r#   .GHashPrinter._iterator._pointer_array.__init__o   sS    "+&)ooj&A#+/??D''PW@X  "hhy'8'8':;r   c                 |    U R                   U   nU R                  (       d  UR                  U R                  5      nU$ r   )rt   ro   rr   rq   )r"   items     r
   __getitem__1GHashPrinter._iterator._pointer_array.__getitem__x   s0    {{4(99T%8%89Dr   )ro   rq   rt   N)r0   r1   r2   r3   r#   r{   r5   r6   r   r
   _pointer_arrayrj   n   s    <r   r}   c                     Xl         US:w  aN  U R                  US   US   5      U l        U R                  US   US   5      U l        US   U l        US   U l        SU l        X l        S U l        g )Nr   keyshave_big_keysvalueshave_big_valueshashessize)	htr}   r   r   r   r   poskeys_are_stringsvalue)r"   r   r   s      r
   r#   GHashPrinter._iterator.__init__   ss    GQw //6
B<OP	"11"X,CT@UV lvJ	DH$4!DJr   c                     U $ r   r6   r,   s    r
   rK   GHashPrinter._iterator.__iter__   rM   r   c                    U R                   S:X  a  [        eU R                  b  U R                  nS U l        U$ [        U R                  5      [        U R
                  5      :  Ga  [        U R                  U R                     5      S:  a  U R                  U R                     nU R                  U R                     nU R                  (       a3  UR                  [        R                  " S5      R                  5       5      nSU R                  -  U4U l        SU R                  -  U4nU =R                  S-  sl        U$ U =R                  S-  sl        [        U R                  5      [        U R
                  5      :  a  GM  [        e)Nr      charz[%dv]z[%dk]rO   )r   rP   r   r   r   r   r   r   r   r   rr   r   rp   rs   )r"   vkeyr   s       r
   r(   GHashPrinter._iterator.next   s   ww!|##zz%JJ!
txx.4		?2DHH-.!3))DHH-C++dhh/C,,!hhsv'>'F'F'HI #*TXX"6!<DJ #dhh/5CHHMHJA! txx.4		?2"  r   )r   r   r   r   r   r   r   r   N)
r0   r1   r2   r3   r}   r#   rK   r(   rR   r5   r6   r   r
   rS   rg   m   s"    	 	$				 4 r   rS   c                     Xl         SU l         [        S5      nU R                   S:w  a   Ub  U R                   S   U:X  a  SU l        g g g g ! [         a    S n N?f = f)NF
g_str_hashr   	hash_funcT)r   r   r   r   )r"   r   string_hashs      r
   r#   GHashPrinter.__init__   so     %	),7K HHM'%4$(D! 5 (   	K	s   A AAc                 N    U R                  U R                  U R                  5      $ r   )rS   r   r   r,   s    r
   rW   GHashPrinter.children   s    ~~dhh(=(=>>r   c                 2    S[        U R                  5      -  $ rZ   r[   r,   s    r
   r-   GHashPrinter.to_string   r]   r   c                     g)Nmapr6   r,   s    r
   r`   GHashPrinter.display_hint   s    r   )r   r   Nrb   r6   r   r
   rd   rd   j   s$    ; ;z)?)r   rd   c                    U R                   R                  5       nUR                  [        R                  :X  a  UR                  5       nUR                  [        R                  :X  a`  UR                  5       R                  5       n[        U5      nUS:X  a  [        U S5      $ US:X  a  [        U S5      $ US:X  a  [        U 5      $  g [        U5      nUS:X  a  [        U 5      $ US:X  a  [        U S5      $ g )NGListGSList
GHashTablezGSList *)typeunqualifiedcoder   TYPE_CODE_REFtargetTYPE_CODE_PTRr+   r?   rd   r   )r   r   ts      r
   pretty_printer_lookupr      s     88!D yyC%%%{{}yyC%%%{{}((*I<W--=X..$$   I<#C((
?X..r   c                 T    U c  [         n U R                  R                  [        5        g r   )r   pretty_printersappendr   )objs    r
   registerr      s!    
{45r   c                   V   ^  \ rS rSrSrU 4S jrS rS rS rS r	S r
S	 rS
 rSrU =r$ )ForeachCommand   zForeach on listc                 h   > [         [        U ]  S[        R                  [        R
                  5        g )Ngforeach)superr   r#   r   COMMAND_DATACOMPLETE_SYMBOL)r"   	__class__s    r
   r#   ForeachCommand.__init__   s%    nd,((#*=*=	
r   c                 6    US   R                  5       (       d  gg)Nr   FT)isalpha)r"   names     r
   
valid_nameForeachCommand.valid_name   s    Aw  r   c                 "   UR                  S5      nUS::  a  [        S5      eUS U nU R                  U5      (       d  [        S5      eU[        U5      :  aD  X   R	                  5       (       a-  US-   nU[        U5      :  a  X   R	                  5       (       a  M-  XUS-    S:w  a  [        S5      eUS-   nU[        U5      :  aD  X   R	                  5       (       a-  US-   nU[        U5      :  a  X   R	                  5       (       a  M-  UR                  S	U5      nUS
:X  a  [        S5      eXU nUS-   nU[        U5      :  aD  X   R	                  5       (       a-  US-   nU[        U5      :  a  X   R	                  5       (       a  M-  XS  nX5U4$ )N r   zNo var specifiedzInvalid variable namerO   r   inzInvalid syntax, missing in:zInvalid syntax, missing colon)findr   r   lenisspace)r"   argivarcolonr   commands          r
   
parse_argsForeachCommand.parse_args   sy   HHSM6.//"1gs##344#c(lsv~~//AA #c(lsv~~// 1q5>T!899E#c(lsv~~//AA #c(lsv~~// a B;;<<El	c#h3:#5#5#7#7AIE c#h3:#5#5#7#7 f+'""r   c                     UR                  [        R                  " S5      R                  5       5      n[	        U5      nSX4-  n[        R
                  " U5        [        R
                  " U5        g )Nvoidzset $%s = (void *)0x%x
)rr   r   rp   rs   r   execute)r"   r   rz   r   to_evals        r
   do_iterForeachCommand.do_iter  sO    yy088:;Dz,{:GGr   c                     UR                  [        R                  " S5      R                  5       5      n[	        U5      S:w  a,  U R                  XS   U5        US   n[	        U5      S:w  a  M+  g g )Nr   r   r'   r(   rr   r   rp   rs   r   r   r"   r   	containerr   list_elements        r
   slist_iteratorForeachCommand.slist_iterator  s[     ~~cooh&?&G&G&IJ< A%LL62G<'/L < A%r   c                     UR                  [        R                  " S5      R                  5       5      n[	        U5      S:w  a,  U R                  XS   U5        US   n[	        U5      S:w  a  M+  g g )Nr   r   r'   r(   r   r   s        r
   list_iteratorForeachCommand.list_iterator  s[     ~~coog&>&F&F&HI< A%LL62G<'/L < A%r   c                 N   UR                   R                  5       nUR                  [        R                  :X  aM  UR                  5       R                  5       n[        U5      nUS:X  a  U R                  $ US:X  a  U R                  $ [        S[        UR                   5      -  5      e)Nr   r   zInvalid container type %s)
r   r   r   r   r   r   r+   r   r   r   )r"   r   r   s      r
   pick_iteratorForeachCommand.pick_iterator%  s    NN&&(66S&&&
&&(AAAH}***G|)))3s9>>7JKLLr   c                     U R                  U5      u  p4n[        R                  " U5      nU R                  U5      nU" X4U5        g r   )r   r   parse_and_evalr   )r"   r   from_ttyr   r   r   funcs          r
   invokeForeachCommand.invoke0  s?    $(OOC$8!&&y1	!!),SW%r   r6   )r0   r1   r2   r3   r4   r#   r   r   r   r   r   r   r   r5   __classcell__)r   s   @r
   r   r      s5    


#B00	M& &r   r   )r   sysversion_infointr   r   r   r   r8   r?   rd   r   r   Commandr   r6   r   r
   <module>r      s    
 
A!D2@
 
X X" "JU Up66P&S[[ P&f  r   