@@ -156,8 +156,7 @@ def __init__(self, tab_size, undo_limit):
156156 self .top_line = self .cur_line = self .row = self .col = self .margin = 0
157157 self .tab_size = tab_size
158158 self .changed = " "
159- self .message = self .find_pattern = ""
160- self .fname = None
159+ self .message = self .find_pattern = self .fname = ""
161160 self .content = ["" ]
162161 self .undo = []
163162 self .undo_limit = max (undo_limit , 0 )
@@ -591,7 +590,7 @@ def undo_add(self, lnum, text, key, span = 1):
591590 self .changed = '*'
592591 if self .undo_limit > 0 and (
593592 len (self .undo ) == 0 or key == 0 or self .undo [- 1 ][3 ] != key or self .undo [- 1 ][0 ] != lnum ):
594- if len (self .undo ) >= self .undo_limit : ## drop oldest undo
593+ if len (self .undo ) >= self .undo_limit : ## drop oldest undo, if full
595594 del self .undo [0 ]
596595 self .undo_zero -= 1
597596 self .undo .append ((lnum , span , text , key , self .col ))
@@ -749,18 +748,17 @@ def handle_edit_keys(self, key): ## keys which change content
749748#ifndef BASIC
750749 if self .mark != None :
751750 fname = self .line_edit ("Save Mark: " , "" )
752- lrange = self .line_range ()
753- self .put_file (fname , lrange [0 ], lrange [1 ])
751+ if fname :
752+ lrange = self .line_range ()
753+ self .put_file (fname , lrange [0 ], lrange [1 ])
754754 else :
755755#endif
756- fname = self .fname
757- if fname == None :
758- fname = ""
759- fname = self .line_edit ("Save File: " , fname )
760- self .put_file (fname , 0 , self .total_lines )
761- self .changed = ' ' ## clear change flag
762- self .undo_zero = len (self .undo ) ## remember state
763- self .fname = fname ## remember (new) name
756+ fname = self .line_edit ("Save File: " , self .fname )
757+ if fname :
758+ self .put_file (fname , 0 , self .total_lines )
759+ self .changed = ' ' ## clear change flag
760+ self .undo_zero = len (self .undo ) ## remember state
761+ self .fname = fname ## remember (new) name
764762 elif key == KEY_UNDO :
765763 if len (self .undo ) > 0 :
766764 action = self .undo .pop (- 1 ) ## get action from stack
@@ -865,18 +863,17 @@ def get_file(self, fname):
865863## write file
866864 def put_file (self , fname , start , stop ):
867865 from os import rename , unlink
868- if fname :
869- with open ("tmpfile.pye" , "w" ) as f :
870- for l in self .content [start :stop ]:
866+ with open ("tmpfile.pye" , "w" ) as f :
867+ for l in self .content [start :stop ]:
871868#ifndef BASIC
872- if self .write_tabs == 'y' :
873- f .write (self .packtabs (l ) + '\n ' )
874- else :
869+ if self .write_tabs == 'y' :
870+ f .write (self .packtabs (l ) + '\n ' )
871+ else :
875872#endif
876- f .write (l + '\n ' )
877- try : unlink (fname )
878- except : pass
879- rename ("tmpfile.pye" , fname )
873+ f .write (l + '\n ' )
874+ try : unlink (fname )
875+ except : pass
876+ rename ("tmpfile.pye" , fname )
880877
881878## expandtabs: hopefully sometimes replaced by the built-in function
882879def expandtabs (s ):
@@ -916,7 +913,7 @@ def pye(content = None, tab_size = 4, undo = 50, device = 0, baud = 115200):
916913 e .deinit_tty ()
917914#endif
918915## close
919- return e .content if (e .fname == None ) else e .fname
916+ return e .content if (e .fname == "" ) else e .fname
920917
921918#ifdef LINUX
922919if __name__ == "__main__" :
0 commit comments