439 |
439 |
440 linenumber = opts.get('line_number') is not None |
440 linenumber = opts.get('line_number') is not None |
441 if linenumber and (not opts.get('changeset')) and (not opts.get('number')): |
441 if linenumber and (not opts.get('changeset')) and (not opts.get('number')): |
442 raise error.Abort(_('at least one of -n/-c is required for -l')) |
442 raise error.Abort(_('at least one of -n/-c is required for -l')) |
443 |
443 |
444 if fm: |
444 if fm.isplain(): |
|
445 def makefunc(get, fmt): |
|
446 return lambda x: fmt(get(x)) |
|
447 else: |
445 def makefunc(get, fmt): |
448 def makefunc(get, fmt): |
446 return get |
449 return get |
447 else: |
|
448 def makefunc(get, fmt): |
|
449 return lambda x: fmt(get(x)) |
|
450 funcmap = [(makefunc(get, fmt), sep) for op, sep, get, fmt in opmap |
450 funcmap = [(makefunc(get, fmt), sep) for op, sep, get, fmt in opmap |
451 if opts.get(op)] |
451 if opts.get(op)] |
452 funcmap[0] = (funcmap[0][0], '') # no separator in front of first column |
452 funcmap[0] = (funcmap[0][0], '') # no separator in front of first column |
453 fields = ' '.join(fieldnamemap.get(op, op) for op, sep, get, fmt in opmap |
453 fields = ' '.join(fieldnamemap.get(op, op) for op, sep, get, fmt in opmap |
454 if opts.get(op)) |
454 if opts.get(op)) |
474 formats = [] |
474 formats = [] |
475 pieces = [] |
475 pieces = [] |
476 |
476 |
477 for f, sep in funcmap: |
477 for f, sep in funcmap: |
478 l = [f(n) for n, dummy in lines] |
478 l = [f(n) for n, dummy in lines] |
479 if fm: |
479 if fm.isplain(): |
480 formats.append(['%s' for x in l]) |
|
481 else: |
|
482 sizes = [encoding.colwidth(x) for x in l] |
480 sizes = [encoding.colwidth(x) for x in l] |
483 ml = max(sizes) |
481 ml = max(sizes) |
484 formats.append([sep + ' ' * (ml - w) + '%s' for w in sizes]) |
482 formats.append([sep + ' ' * (ml - w) + '%s' for w in sizes]) |
|
483 else: |
|
484 formats.append(['%s' for x in l]) |
485 pieces.append(l) |
485 pieces.append(l) |
486 |
486 |
487 for f, p, l in zip(zip(*formats), zip(*pieces), lines): |
487 for f, p, l in zip(zip(*formats), zip(*pieces), lines): |
488 fm.startitem() |
488 fm.startitem() |
489 fm.write(fields, "".join(f), *p) |
489 fm.write(fields, "".join(f), *p) |
1183 lockmod.release(tr, lock, wlock) |
1183 lockmod.release(tr, lock, wlock) |
1184 else: # show bookmarks |
1184 else: # show bookmarks |
1185 fm = ui.formatter('bookmarks', opts) |
1185 fm = ui.formatter('bookmarks', opts) |
1186 hexfn = fm.hexfunc |
1186 hexfn = fm.hexfunc |
1187 marks = repo._bookmarks |
1187 marks = repo._bookmarks |
1188 if len(marks) == 0 and not fm: |
1188 if len(marks) == 0 and fm.isplain(): |
1189 ui.status(_("no bookmarks set\n")) |
1189 ui.status(_("no bookmarks set\n")) |
1190 for bmark, n in sorted(marks.iteritems()): |
1190 for bmark, n in sorted(marks.iteritems()): |
1191 active = repo._activebookmark |
1191 active = repo._activebookmark |
1192 if bmark == active: |
1192 if bmark == active: |
1193 prefix, label = '*', activebookmarklabel |
1193 prefix, label = '*', activebookmarklabel |
4440 for i in xrange(blo, bhi): |
4440 for i in xrange(blo, bhi): |
4441 yield ('+', b[i]) |
4441 yield ('+', b[i]) |
4442 |
4442 |
4443 def display(fm, fn, ctx, pstates, states): |
4443 def display(fm, fn, ctx, pstates, states): |
4444 rev = ctx.rev() |
4444 rev = ctx.rev() |
4445 if fm: |
4445 if fm.isplain(): |
|
4446 formatuser = ui.shortuser |
|
4447 else: |
4446 formatuser = str |
4448 formatuser = str |
4447 else: |
|
4448 formatuser = ui.shortuser |
|
4449 if ui.quiet: |
4449 if ui.quiet: |
4450 datefmt = '%Y-%m-%d' |
4450 datefmt = '%Y-%m-%d' |
4451 else: |
4451 else: |
4452 datefmt = '%a %b %d %H:%M:%S %Y %1%2' |
4452 datefmt = '%a %b %d %H:%M:%S %Y %1%2' |
4453 found = False |
4453 found = False |