Ignore:
Timestamp:
05/05/12 12:16:30 (12 years ago)
Author:
István Váradi <ivaradi@…>
Branch:
default
hg-Phase:
(<MercurialRepository 1 'hg:/home/ivaradi/mlx/hg' '/'>, 'public')
Message:

Enhanced language handling to run the program in the proper environment for gettext

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/mlx/mlx.py

    r133 r155  
    77import os
    88import sys
    9 
    10 if os.name=="nt":
    11     import win32api
    129
    1310#--------------------------------------------------------------------------------------
     
    2522#--------------------------------------------------------------------------------------
    2623
     24def restart(args = []):
     25    """Restart the program with the given arguments."""
     26    print "Restarting with args", args
     27    programPath = os.path.join(os.path.dirname(sys.argv[0]),
     28                               "runmlx.exe" if os.name=="nt" else "runmlx.sh")
     29    if os.name=="nt":
     30        import win32api
     31        try:
     32            programPath = win32api.GetShortPathName(programPath)
     33        except:
     34            programPath = os.path.join(os.path.dirname(sys.argv[0]),
     35                                       "runmlx.bat")
     36            programPath = win32api.GetShortPathName(programPath)
     37
     38    args = [programPath] + args
     39
     40    os.execv(programPath, args)   
     41
     42#--------------------------------------------------------------------------------------
     43
    2744def main():
    2845    """The main operation of the program."""
     
    3148    config = Config()
    3249    config.load()
     50
     51    if (len(sys.argv)<=1 or sys.argv[1]!="usedeflang") and config.setupLocale():
     52        restart(["usedeflang"])
    3353
    3454    setLanguage(config.getLanguage())
     
    5474
    5575    if gui.toRestart:
    56         programPath = os.path.join(os.path.dirname(sys.argv[0]),
    57                                    "runmlx.exe" if os.name=="nt" else "runmlx.sh")
    58         if os.name=="nt":
    59             programPath = win32api.GetShortPathName(programPath)
    60 
    61         os.execl(programPath, programPath)
     76        restart()
    6277
    6378#--------------------------------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.