@@ -691,14 +691,16 @@ def save_as_session_options() -> str:
691691'''
692692
693693
694- def save_as_session_part2 (boss : BossType , opts : SaveAsSessionOptions , path : str ) -> None :
694+ def save_as_session_part2 (boss : BossType , opts : SaveAsSessionOptions , path : str , path_input_by_user : bool = False ) -> None :
695695 if not path :
696696 return
697697 from .config import atomic_save
698698 if opts .base_dir and not os .path .isabs (path ):
699699 base_dir = os .path .abspath (os .path .expanduser (opts .base_dir ))
700700 path = os .path .join (base_dir , path )
701701 path = os .path .abspath (os .path .expanduser (path ))
702+ if path_input_by_user and '.' not in os .path .basename (path ):
703+ path += '.kitty-session'
702704 session = '\n ' .join (boss .serialize_state_as_session (path , opts ))
703705 os .makedirs (os .path .dirname (path ), exist_ok = True )
704706 atomic_save (session .encode (), path )
@@ -732,4 +734,4 @@ def save_as_session(boss: BossType, cmdline: Sequence[str]) -> None:
732734 else :
733735 boss .get_save_filepath (_ (
734736 'Enter the path at which to save the session, usually session files are given the .kitty-session file extension' ),
735- partial (save_as_session_part2 , boss , opts ))
737+ partial (save_as_session_part2 , boss , opts , path_input_by_user = True ))
0 commit comments