1# Copyright (c) 2009, Tomohiro Kusumi 2# All rights reserved. 3# 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions are met: 6# 7# 1. Redistributions of source code must retain the above copyright notice, this 8# list of conditions and the following disclaimer. 9# 2. Redistributions in binary form must reproduce the above copyright notice, 10# this list of conditions and the following disclaimer in the documentation 11# and/or other materials provided with the distribution. 12# 13# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 14# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 15# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 16# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 17# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 18# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 19# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 20# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 22# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 24import os 25 26from .. import extension 27 28def get_text(co, fo, args): 29 l = list(co.iter_buffer()) 30 assert l 31 title = '', " ", "buffer", "size", "class" 32 33 l1 = [len(extension.get_verbose_path(o)) for o in l] 34 l1.append(len(title[2])) 35 l2 = [len(str(o.get_size())) for o in l] 36 l2.append(len(title[3])) 37 38 f = "{{0:{0}}} {{1}} {{2:<{1}}} {{3:{2}}} {{4}}".format( 39 extension.get_index_width(l), max(l1), max(l2)) 40 sl = [f.format(*title)] 41 for i, o in enumerate(l): 42 c = " " if os.path.exists(o.get_path()) else "!" 43 sl.append(f.format(i + 1, c, extension.get_verbose_path(o), 44 o.get_size(), o.get_type())) 45 return sl 46