| Index: tools/grit/grit/node/custom/filename.py
|
| diff --git a/tools/grit/grit/node/custom/filename.py b/tools/grit/grit/node/custom/filename.py
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..79a7744f2eb7537b8ca8f21f505318b84c798279
|
| --- /dev/null
|
| +++ b/tools/grit/grit/node/custom/filename.py
|
| @@ -0,0 +1,28 @@
|
| +#!/usr/bin/env python
|
| +# Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +'''A CustomType for filenames.'''
|
| +
|
| +from grit import clique
|
| +from grit import lazy_re
|
| +
|
| +
|
| +class WindowsFilename(clique.CustomType):
|
| + '''Validates that messages can be used as Windows filenames, and strips
|
| + illegal characters out of translations.
|
| + '''
|
| +
|
| + BANNED = lazy_re.compile('\+|:|\/|\\\\|\*|\?|\"|\<|\>|\|')
|
| +
|
| + def Validate(self, message):
|
| + return not self.BANNED.search(message.GetPresentableContent())
|
| +
|
| + def ValidateAndModify(self, lang, translation):
|
| + is_ok = self.Validate(translation)
|
| + self.ModifyEachTextPart(lang, translation)
|
| + return is_ok
|
| +
|
| + def ModifyTextPart(self, lang, text):
|
| + return self.BANNED.sub(' ', text)
|
|
|