# Programmer: Daniel Pozmanter # E-mail: drpython@bluebottle.com # Note: You must reply to the verification e-mail to get through. # # Copyright 2003-2005 Daniel Pozmanter # # Distributed under the terms of the GPL (GNU Public License) # # DrPython is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #Preferences #LongLineCol from Chris McDonough #Changed "doc.longlinecol" to "doc.long.line.col" import drPreferences import re def GetPrefValue(preflabel, text): restart = re.compile('^<' + preflabel + '>', re.M) reend = re.compile('$', re.M) start = restart.search(text) end = reend.search(text) if start is None or end is None: return None return text[start.end():end.start()] def ConvertRawPreference(preference, type, default): if type == 0: if len(preference) > 0: return preference else: return default elif type == 1: try: return int(preference) except: return 0 elif type == 2: return preference def ExtractPreferenceFromText(text, pref): try: start = text.index("<" + pref + ">") + len(pref) + 2 end = text.index("") return text[start:end] except: return "" def ReadPreferences(prefs, prefsfile): #Handle exceptions in parent function. #sets prefs for parent frame. #Use GetPrefFromText(oldpref, text, prefstring) for string prefs #Use GetPrefFromText(oldpref, text, prefstring, True) for int prefs #Use ExtractPreferenceFromText(text, prefstring) for prefs where and empty #string is a valid value. fin = open(prefsfile, 'r') text = fin.read() fin.close() PreferencesDictionary = drPreferences.GetPreferencesDictionary() for Entry in PreferencesDictionary: for Preference in PreferencesDictionary[Entry]: value = GetPrefValue(Preference[1], text) if value is not None: prefs[Preference[0]] = ConvertRawPreference(value, Preference[2], prefs[Preference[0]]) def WritePreferences(prefs, prefsfile): fin = open(prefsfile, 'w') PreferencesDictionary = drPreferences.GetPreferencesDictionary() for Entry in PreferencesDictionary: for Preference in PreferencesDictionary[Entry]: if Preference[2] == 1: fin.write('<' + Preference[1] + '>' + str(prefs[Preference[0]]) + '\n') else: fin.write('<' + Preference[1] + '>' + prefs[Preference[0]] + '\n') fin.close() #***************************** #Old Functions (Still Used In Plugins) def GetPreference(pref, prefsfile): #Handle exceptions in parent function. fin = open(prefsfile, 'r') text = fin.read() fin.close() #Test File: if (text.find("drpython") < 0): return -1 return ExtractPreferenceFromText(text, pref) def GetPrefFromText(oldvalue, text, targetpref, integer = False): if (integer): pref = ExtractPreferenceFromText(text, targetpref) if (len(pref) > 0): return SafeInt(pref) else: pref = ExtractPreferenceFromText(text, targetpref) if (len(pref) > 0): return pref return oldvalue def SafeInt(string): if (len(string) > 0): try: return int(string) except: return 0 return 0