1#!/usr/bin/env python 2# Copyright (c) 2012 The Chromium Authors. All rights reserved. 3# Use of this source code is governed by a BSD-style license that can be 4# found in the LICENSE file. 5 6'''A CustomType for filenames.''' 7 8from grit import clique 9from grit import lazy_re 10 11 12class WindowsFilename(clique.CustomType): 13 '''Validates that messages can be used as Windows filenames, and strips 14 illegal characters out of translations. 15 ''' 16 17 BANNED = lazy_re.compile('\+|:|\/|\\\\|\*|\?|\"|\<|\>|\|') 18 19 def Validate(self, message): 20 return not self.BANNED.search(message.GetPresentableContent()) 21 22 def ValidateAndModify(self, lang, translation): 23 is_ok = self.Validate(translation) 24 self.ModifyEachTextPart(lang, translation) 25 return is_ok 26 27 def ModifyTextPart(self, lang, text): 28 return self.BANNED.sub(' ', text) 29