| Index: git_cl.py | 
| diff --git a/git_cl.py b/git_cl.py | 
| index c78207bdc9ee4f1ab1541ec1ca74238d8621b377..5b0f00aeecec04589a5db91d4352584c79de5f73 100755 | 
| --- a/git_cl.py | 
| +++ b/git_cl.py | 
| @@ -2125,6 +2125,8 @@ class _RietveldChangelistImpl(_ChangelistCodereviewBase): | 
| else: | 
| cc = self.GetCCList() | 
| cc = ','.join(filter(None, (cc, ','.join(options.cc)))) | 
| +      if change_desc.get_cced(): | 
| +        cc = ','.join(filter(None, (cc, ','.join(change_desc.get_cced())))) | 
| if cc: | 
| upload_args.extend(['--cc', cc]) | 
|  | 
| @@ -2772,6 +2774,8 @@ class _GerritChangelistImpl(_ChangelistCodereviewBase): | 
| if options.cc: | 
| cc.extend(options.cc) | 
| cc = filter(None, [email.strip() for email in cc]) | 
| +    if change_desc.get_cced(): | 
| +      cc.extend(change_desc.get_cced()) | 
| if cc: | 
| gerrit_util.AddReviewers( | 
| self._GetGerritHost(), self.GetIssue(), cc, is_reviewer=False) | 
| @@ -2898,6 +2902,7 @@ def _get_bug_line_values(default_project, bugs): | 
| class ChangeDescription(object): | 
| """Contains a parsed form of the change description.""" | 
| R_LINE = r'^[ \t]*(TBR|R)[ \t]*=[ \t]*(.*?)[ \t]*$' | 
| +  CC_LINE = r'^[ \t]*(CC)[ \t]*=[ \t]*(.*?)[ \t]*$' | 
| BUG_LINE = r'^[ \t]*(BUG)[ \t]*=[ \t]*(.*?)[ \t]*$' | 
|  | 
| def __init__(self, description): | 
| @@ -3045,6 +3050,12 @@ class ChangeDescription(object): | 
| if match and (not tbr_only or match.group(1).upper() == 'TBR')] | 
| return cleanup_list(reviewers) | 
|  | 
| +  def get_cced(self): | 
| +    """Retrieves the list of reviewers.""" | 
| +    matches = [re.match(self.CC_LINE, line) for line in self._description_lines] | 
| +    cced = [match.group(2).strip() for match in matches if match] | 
| +    return cleanup_list(cced) | 
| + | 
|  | 
| def get_approving_reviewers(props): | 
| """Retrieves the reviewers that approved a CL from the issue properties with | 
|  |