2121#include "api.h"
2222
2323#define XTOP_VERSION_MAJ 1
24- #define XTOP_VERSION_MIN 3
24+ #define XTOP_VERSION_MIN 4
2525
2626#define XTOP_SORT_DISABLE 0
2727#define XTOP_SORT_BUSY 1
4040 "HI IO "\
4141 "ST GT GN"
4242
43- /*
44- #define XTOP_IFACE_HEADER \
45- "IFACE "\
46- "RX "\
47- "TX "\
48- "SUM "\
49- "MAC IP"
50- */
51-
52- #define XTOP_IFACE_HEADER \
53- "IFACE "\
54- "RX "\
55- "TX SUM"
43+ #define XTOP_IFACE_HEADER "IFACE"
5644
5745static int g_nInterrupted = 0 ;
5846extern char * optarg ;
@@ -699,24 +687,27 @@ XSTATUS XTOPApp_AddInterface(xcli_win_t *pWin, xtop_args_t *pArgs, xnet_iface_t
699687 xstrnlcpyf (sName , sizeof (sName ), nLength + 1 , XSTR_SPACE_CHAR , "%s" , pIface -> sName );
700688 xstrncpy (sLine , sizeof (sLine ), sName );
701689
702- XBytesToUnit (sData , sizeof (sData ), pIface -> nBytesReceivedPerSec , XFALSE );
703- xstrnlcpyf (sRound , sizeof (sRound ), 15 , XSTR_SPACE_CHAR , "%s" , sData );
690+ uint8_t nAddrPadding = (pWin -> frame .nColumns < 98 ) ? 12 : 15 ;
691+ xbool_t bShort = (pWin -> frame .nColumns < 98 ) ? XTRUE : XFALSE ;
692+
693+ XBytesToUnit (sData , sizeof (sData ), pIface -> nBytesReceivedPerSec , bShort );
694+ xstrnlcpyf (sRound , sizeof (sRound ), nAddrPadding , XSTR_SPACE_CHAR , "%s" , sData );
704695 xstrncat (sLine , sizeof (sLine ), "%s/s" , sRound );
705696
706- XBytesToUnit (sData , sizeof (sData ), pIface -> nBytesSentPerSec , XFALSE );
707- xstrnlcpyf (sRound , sizeof (sRound ), 15 , XSTR_SPACE_CHAR , "%s" , sData );
697+ XBytesToUnit (sData , sizeof (sData ), pIface -> nBytesSentPerSec , bShort );
698+ xstrnlcpyf (sRound , sizeof (sRound ), nAddrPadding , XSTR_SPACE_CHAR , "%s" , sData );
708699 xstrncat (sLine , sizeof (sLine ), "%s/s" , sRound );
709700
710701 uint64_t nSum = pIface -> nBytesReceivedPerSec + pIface -> nBytesSentPerSec ;
711- XBytesToUnit (sData , sizeof (sData ), nSum , XFALSE );
712- xstrnlcpyf (sRound , sizeof (sRound ), 15 , XSTR_SPACE_CHAR , "%s" , sData );
702+ XBytesToUnit (sData , sizeof (sData ), nSum , bShort );
703+ xstrnlcpyf (sRound , sizeof (sRound ), nAddrPadding , XSTR_SPACE_CHAR , "%s" , sData );
713704 xstrncat (sLine , sizeof (sLine ), "%s/s" , sRound );
714705
715- uint8_t nAddrPadding = (pWin -> frame .nColumns < 106 ) ? 7 : 8 ;
706+ nAddrPadding = (pWin -> frame .nColumns < 106 ) ? 7 : 8 ;
716707 nAddrPadding = (pWin -> frame .nColumns < 104 ) ? 6 : nAddrPadding ;
717708 nAddrPadding = (pWin -> frame .nColumns < 102 ) ? 5 : nAddrPadding ;
718709 nAddrPadding = (pWin -> frame .nColumns < 100 ) ? 4 : nAddrPadding ;
719- nAddrPadding = (pWin -> frame .nColumns < 98 ) ? 3 : nAddrPadding ;
710+ nAddrPadding = (pWin -> frame .nColumns < 89 ) ? 3 : nAddrPadding ;
720711
721712 xstrnlcpyf (sRound , sizeof (sRound ), strlen (pIface -> sHWAddr ) + nAddrPadding , XSTR_SPACE_CHAR , "%s" , pIface -> sHWAddr );
722713 if (strncmp (pIface -> sHWAddr , XNET_HWADDR_DEFAULT , 17 )) xstrncat (sLine , sizeof (sLine ), "%s" , sRound );
@@ -762,11 +753,22 @@ XSTATUS XTOPApp_AddNetworkInfo(xcli_win_t *pWin, xtop_args_t *pArgs, xarray_t *p
762753 xstrnfill (sLine , sizeof (sLine ), nPreHdr , XSTR_SPACE_CHAR );
763754 xstrncat (sLine , sizeof (sLine ), "%s" , XTOP_IFACE_HEADER );
764755
765- uint8_t nSpacePadding = (pWin -> frame .nColumns < 106 ) ? 17 : 18 ;
756+ uint8_t nSpacePadding = (pWin -> frame .nColumns < 98 ) ? 14 : 17 ;
757+
758+ xstrnlcpyf (sRound , sizeof (sRound ), nSpacePadding , XSTR_SPACE_CHAR , "%s" , "RX" );
759+ xstrncat (sLine , sizeof (sLine ), "%s" , sRound );
760+
761+ xstrnlcpyf (sRound , sizeof (sRound ), nSpacePadding , XSTR_SPACE_CHAR , "%s" , "TX" );
762+ xstrncat (sLine , sizeof (sLine ), "%s" , sRound );
763+
764+ xstrnlcpyf (sRound , sizeof (sRound ), nSpacePadding , XSTR_SPACE_CHAR , "%s" , "SUM" );
765+ xstrncat (sLine , sizeof (sLine ), "%s" , sRound );
766+
767+ nSpacePadding = (pWin -> frame .nColumns < 106 ) ? 17 : 18 ;
766768 nSpacePadding = (pWin -> frame .nColumns < 104 ) ? 16 : nSpacePadding ;
767769 nSpacePadding = (pWin -> frame .nColumns < 102 ) ? 15 : nSpacePadding ;
768770 nSpacePadding = (pWin -> frame .nColumns < 100 ) ? 14 : nSpacePadding ;
769- nSpacePadding = (pWin -> frame .nColumns < 98 ) ? 13 : nSpacePadding ;
771+ nSpacePadding = (pWin -> frame .nColumns < 89 ) ? 13 : nSpacePadding ;
770772
771773 xstrnlcpyf (sRound , sizeof (sRound ), nSpacePadding , XSTR_SPACE_CHAR , "%s" , "MAC" );
772774 xstrncat (sLine , sizeof (sLine ), "%s" , sRound );
@@ -789,17 +791,20 @@ XSTATUS XTOPApp_AddNetworkInfo(xcli_win_t *pWin, xtop_args_t *pArgs, xarray_t *p
789791 if (pIface != NULL ) XTOPApp_AddInterface (pWin , pArgs , pIface , nLength );
790792 }
791793
794+ nSpacePadding = (pWin -> frame .nColumns < 98 ) ? 12 : 15 ;
795+ xbool_t bShort = (pWin -> frame .nColumns < 98 ) ? XTRUE : XFALSE ;
796+
792797 xstrnlcpyf (sLine , sizeof (sLine ), nLength + 1 , XSTR_SPACE_CHAR , "%s" , "total" );
793- XBytesToUnit (sData , sizeof (sData ), nSumRX , XFALSE );
794- xstrnlcpyf (sRound , sizeof (sRound ), 15 , XSTR_SPACE_CHAR , "%s" , sData );
798+ XBytesToUnit (sData , sizeof (sData ), nSumRX , bShort );
799+ xstrnlcpyf (sRound , sizeof (sRound ), nSpacePadding , XSTR_SPACE_CHAR , "%s" , sData );
795800 xstrncat (sLine , sizeof (sLine ), "%s/s" , sRound );
796801
797- XBytesToUnit (sData , sizeof (sData ), nSumTX , XFALSE );
798- xstrnlcpyf (sRound , sizeof (sRound ), 15 , XSTR_SPACE_CHAR , "%s" , sData );
802+ XBytesToUnit (sData , sizeof (sData ), nSumTX , bShort );
803+ xstrnlcpyf (sRound , sizeof (sRound ), nSpacePadding , XSTR_SPACE_CHAR , "%s" , sData );
799804 xstrncat (sLine , sizeof (sLine ), "%s/s" , sRound );
800805
801- XBytesToUnit (sData , sizeof (sData ), nSumRX + nSumTX , XFALSE );
802- xstrnlcpyf (sRound , sizeof (sRound ), 15 , XSTR_SPACE_CHAR , "%s" , sData );
806+ XBytesToUnit (sData , sizeof (sData ), nSumRX + nSumTX , bShort );
807+ xstrnlcpyf (sRound , sizeof (sRound ), nSpacePadding , XSTR_SPACE_CHAR , "%s" , sData );
803808 xstrncat (sLine , sizeof (sLine ), "%s/s" , sRound );
804809 return XWindow_AddAligned (pWin , sLine , XSTR_CLR_LIGHT_CYAN , XCLI_LEFT );
805810}
0 commit comments