diff --git a/cudir.cc b/cudir.cc index 2538f66..7158b8c 100644 --- a/cudir.cc +++ b/cudir.cc @@ -6,6 +6,7 @@ #include #include +#include #include @@ -79,10 +80,15 @@ main( const int argcnt, const char *const argvec[] ) const int rowWidth= widest + C::filePadding + C::sizeWidth + 1 + C::modeBitsWidth + 2 + ( O::twoDigitDate ? C::shortDateWidth : C::dateWidth )+ 1 + C::timeWidth; + const int terminalWidth= Alepha::Console::main().getScreenWidth(); + std::cout << ""; for( int i= 0; i < rowWidth; ++i ) std::cout << "\u2500"; - std::cout << "\u252c"; - for( int i= 0; i < rowWidth; ++i ) std::cout << "\u2500"; + if( terminalWidth >= ( rowWidth * 2 + 1 ) ) + { + std::cout << "\u252c"; + for( int i= 0; i < rowWidth; ++i ) std::cout << "\u2500"; + } std::cout << "" << std::endl; std::size_t fileCount= 0; @@ -123,7 +129,7 @@ main( const int argcnt, const char *const argvec[] ) std::cout << std::setw( 2 ) << std::setfill( '0' ) << entry.minute; std::cout << "\e[m"; - if( side == false ) + if( terminalWidth >= ( rowWidth * 2 + 1 ) and side == false ) { std::cout << "\u2502"; side= true; @@ -138,8 +144,11 @@ main( const int argcnt, const char *const argvec[] ) std::cout << ""; for( int i= 0; i < rowWidth; ++i ) std::cout << "\u2500"; - std::cout << "\u2534"; - for( int i= 0; i < rowWidth; ++i ) std::cout << "\u2500"; + if( terminalWidth >= ( rowWidth * 2 + 1 ) ) + { + std::cout << "\u2534"; + for( int i= 0; i < rowWidth; ++i ) std::cout << "\u2500"; + } std::cout << "" << std::endl; std::cout << std::setw( C::sizeWidth ) << std::setfill( ' ' ) << std::right << "\e[;1;36;96m" << fileCount;