615 ) or templater.templatepath(mapfile) |
615 ) or templater.templatepath(mapfile) |
616 if mapname: |
616 if mapname: |
617 mapfile = mapname |
617 mapfile = mapname |
618 return templatespec(None, mapfile) |
618 return templatespec(None, mapfile) |
619 |
619 |
620 if not tmpl: |
|
621 return templatespec(None, None) |
|
622 |
|
623 return formatter.lookuptemplate(ui, b'changeset', tmpl) |
620 return formatter.lookuptemplate(ui, b'changeset', tmpl) |
624 |
621 |
625 |
622 |
626 def maketemplater(ui, repo, tmpl, buffered=False): |
623 def maketemplater(ui, repo, tmpl, buffered=False): |
627 """Create a changesettemplater from a literal template 'tmpl' |
624 """Create a changesettemplater from a literal template 'tmpl' |
640 4. [ui] setting 'style' |
637 4. [ui] setting 'style' |
641 If all of these values are either the unset or the empty string, |
638 If all of these values are either the unset or the empty string, |
642 regular display via changesetprinter() is done. |
639 regular display via changesetprinter() is done. |
643 """ |
640 """ |
644 postargs = (differ, opts, buffered) |
641 postargs = (differ, opts, buffered) |
645 if opts.get(b'template') in {b'cbor', b'json'}: |
642 spec = _lookuptemplate(ui, opts.get(b'template'), opts.get(b'style')) |
|
643 |
|
644 # machine-readable formats have slightly different keyword set than |
|
645 # plain templates, which are handled by changesetformatter. |
|
646 # note that {b'pickle', b'debug'} can also be added to the list if needed. |
|
647 if spec.ref in {b'cbor', b'json'}: |
646 fm = ui.formatter(b'log', opts) |
648 fm = ui.formatter(b'log', opts) |
647 return changesetformatter(ui, repo, fm, *postargs) |
649 return changesetformatter(ui, repo, fm, *postargs) |
648 |
|
649 spec = _lookuptemplate(ui, opts.get(b'template'), opts.get(b'style')) |
|
650 |
650 |
651 if not spec.ref and not spec.tmpl and not spec.mapfile: |
651 if not spec.ref and not spec.tmpl and not spec.mapfile: |
652 return changesetprinter(ui, repo, *postargs) |
652 return changesetprinter(ui, repo, *postargs) |
653 |
653 |
654 return changesettemplater(ui, repo, spec, *postargs) |
654 return changesettemplater(ui, repo, spec, *postargs) |