• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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