@@ -345,9 +345,10 @@ def do_format(self, evaluation, form):
345345 try :
346346 expr = self
347347 head = self .get_head_name ()
348+ leaves = self .get_leaves ()
348349 include_form = False
349- if head in formats and len (self . get_leaves () ) == 1 :
350- expr = self . leaves [ 0 ]
350+ if head in formats and len (leaves ) == 1 :
351+ expr = leaves
351352 if not (form == 'System`OutputForm' and head == 'System`StandardForm' ):
352353 form = head
353354
@@ -367,9 +368,34 @@ def format_expr(expr):
367368 return None
368369
369370 if form != 'System`FullForm' :
371+ # Repeated and RepeatedNull confuse the formatter,
372+ # so we need to hardlink their format rules:
373+ if head == "System`Repeated" :
374+ if len (leaves )== 1 :
375+ return Expression ("System`HoldForm" ,
376+ Expression ("System`Postfix" ,
377+ Expression (
378+ "System`List" ,
379+ leaves [0 ]
380+ ),".." ,170 ))
381+ else :
382+ return Expression ("System`HoldForm" ,expr )
383+ elif head == "System`RepeatedNull" :
384+ if len (leaves )== 1 :
385+ return Expression ("System`HoldForm" ,
386+ Expression ("System`Postfix" ,
387+ Expression (
388+ "System`List" ,
389+ leaves [0 ]
390+ ),"..." ,170 ))
391+ else :
392+ return Expression ("System`HoldForm" ,expr )
393+
370394 formatted = format_expr (expr )
371395 if formatted is not None :
396+ print (" formated: " ,formatted )
372397 result = formatted .do_format (evaluation , form )
398+ print (" result: " , result )
373399 if include_form :
374400 result = Expression (form , result )
375401 result .unformatted = unformatted
@@ -379,7 +405,8 @@ def format_expr(expr):
379405 if head in formats :
380406 expr = expr .do_format (evaluation , form )
381407 elif (head != 'System`NumberForm' and not expr .is_atom () and
382- head != 'System`Graphics' ):
408+ head != 'System`Graphics' and
409+ not head in ("Repeat" , "RepeatNull" ) ):
383410 new_leaves = [leaf .do_format (evaluation , form )
384411 for leaf in expr .leaves ]
385412 expr = Expression (
0 commit comments