diff options
| author | Olof Johansson <olof.johansson@sonymobile.com> | 2013-02-26 07:36:03 +0100 |
|---|---|---|
| committer | David Pursehouse <david.pursehouse@sonymobile.com> | 2013-02-26 16:04:55 +0900 |
| commit | b75415075c00bb17e14c5666a380b7e940db8c84 (patch) | |
| tree | 2d94ac7c8db65324f038d3c666251848caddfa72 | |
| parent | 5f434ed723ac14cdcea12d038c066c0653e1ef3a (diff) | |
| download | git-repo-b75415075c00bb17e14c5666a380b7e940db8c84.tar.gz | |
Add nofmt_printer to color.py
The current printer always expands on the arguments which is a problem
for strings containing %.
Instead of forcing manual string expansion before printing allow for a
no format printer option which simply accepts and prints the string.
Part of fix for issue #131:
http://code.google.com/p/git-repo/issues/detail?id=131
Change-Id: I08ef94b9c4ddab58ac12d2bd32ebd2c413e4f83b
| -rw-r--r-- | color.py | 18 |
1 files changed, 18 insertions, 0 deletions
| @@ -126,6 +126,13 @@ class Coloring(object): | |||
| 126 | s._out.write(c(fmt, *args)) | 126 | s._out.write(c(fmt, *args)) |
| 127 | return f | 127 | return f |
| 128 | 128 | ||
| 129 | def nofmt_printer(self, opt=None, fg=None, bg=None, attr=None): | ||
| 130 | s = self | ||
| 131 | c = self.nofmt_colorer(opt, fg, bg, attr) | ||
| 132 | def f(fmt): | ||
| 133 | s._out.write(c(fmt)) | ||
| 134 | return f | ||
| 135 | |||
| 129 | def colorer(self, opt=None, fg=None, bg=None, attr=None): | 136 | def colorer(self, opt=None, fg=None, bg=None, attr=None): |
| 130 | if self._on: | 137 | if self._on: |
| 131 | c = self._parse(opt, fg, bg, attr) | 138 | c = self._parse(opt, fg, bg, attr) |
| @@ -138,6 +145,17 @@ class Coloring(object): | |||
| 138 | return fmt % args | 145 | return fmt % args |
| 139 | return f | 146 | return f |
| 140 | 147 | ||
| 148 | def nofmt_colorer(self, opt=None, fg=None, bg=None, attr=None): | ||
| 149 | if self._on: | ||
| 150 | c = self._parse(opt, fg, bg, attr) | ||
| 151 | def f(fmt): | ||
| 152 | return ''.join([c, fmt, RESET]) | ||
| 153 | return f | ||
| 154 | else: | ||
| 155 | def f(fmt): | ||
| 156 | return fmt | ||
| 157 | return f | ||
| 158 | |||
| 141 | def _parse(self, opt, fg, bg, attr): | 159 | def _parse(self, opt, fg, bg, attr): |
| 142 | if not opt: | 160 | if not opt: |
| 143 | return _Color(fg, bg, attr) | 161 | return _Color(fg, bg, attr) |
