Author: gstein Date: Wed Oct 25 05:35:06 2023 New Revision: 1913311 URL: http://svn.apache.org/viewvc?rev=1913311&view=rev Log: Move the make_subject() method from OutputBase to Messenger.
Almost no code change. Had to change to .output.prefix_param. * tools/hook-scripts/mailer/mailer.py: (OutputBase.make_subject): moved to ... (Messenger.make_subject): ... here. The prefix_param is still back in the OutputBase, so tweak the code to fetch it. Modified: subversion/trunk/tools/hook-scripts/mailer/mailer.py Modified: subversion/trunk/tools/hook-scripts/mailer/mailer.py URL: http://svn.apache.org/viewvc/subversion/trunk/tools/hook-scripts/mailer/mailer.py?rev=1913311&r1=1913310&r2=1913311&view=diff ============================================================================== --- subversion/trunk/tools/hook-scripts/mailer/mailer.py (original) +++ subversion/trunk/tools/hook-scripts/mailer/mailer.py Wed Oct 25 05:35:06 2023 @@ -179,32 +179,6 @@ class OutputBase: self.prefix_param = prefix_param self._CHUNKSIZE = 128 * 1024 - ### TBD: move this to Messenger. - def make_subject(self, basic_subject, group, params): - prefix = self.cfg.get(self.prefix_param, group, params) - if prefix: - subject = prefix + ' ' + basic_subject - else: - subject = basic_subject - - try: - truncate_subject = int( - self.cfg.get('truncate_subject', group, params)) - except ValueError: - truncate_subject = 0 - - # truncate subject as UTF-8 string. - # Note: there still exists an issue on combining characters. - if truncate_subject: - bsubject = to_bytes(subject) - if len(bsubject) > truncate_subject: - idx = truncate_subject - 2 - while b'\x80' <= bsubject[idx-1:idx] <= b'\xbf': - idx -= 1 - subject = to_str(bsubject[:idx-1]) + "..." - - return subject - def start(self, basic_subject, group, params): """Override this method. @@ -469,9 +443,31 @@ class Messenger: self.output = cls(cfg, repos, prefix_param) - ### temporary shim to avoid large code movement between classes def make_subject(self, basic_subject, group, params): - return self.output.make_subject(basic_subject, group, params) + ### prefix_param should move to Messenger. + prefix = self.cfg.get(self.output.prefix_param, group, params) + if prefix: + subject = prefix + ' ' + basic_subject + else: + subject = basic_subject + + try: + truncate_subject = int( + self.cfg.get('truncate_subject', group, params)) + except ValueError: + truncate_subject = 0 + + # truncate subject as UTF-8 string. + # Note: there still exists an issue on combining characters. + if truncate_subject: + bsubject = to_bytes(subject) + if len(bsubject) > truncate_subject: + idx = truncate_subject - 2 + while b'\x80' <= bsubject[idx-1:idx] <= b'\xbf': + idx -= 1 + subject = to_str(bsubject[:idx-1]) + "..." + + return subject class Commit(Messenger):