Parcourir la source

New smart COL and WCOL settings

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@811 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Mark Hymers il y a 24 ans
Parent
commit
ba71c742ec
1 fichiers modifiés avec 20 ajouts et 4 suppressions
  1. 20 4
      chapter07/functions.xml

+ 20 - 4
chapter07/functions.xml

@@ -14,14 +14,30 @@ the following command:
 
 #
 # Set a few variables that influence the text that's printed on the
-# screen. The SET_COL variable starts the text in column number 70 (as
-# defined by the COL variable). NORMAL prints text in normal mode.
+# screen. The SET_COL variable starts the text in the column number 
+# decided by the COL and WCOL section (as defined by the COL 
+# variable). NORMAL prints text in normal mode.
 # SUCCESS prints text in a green colour and FAILURE prints text in a red
 # colour
 #
 
-COL=70
-WCOL=50
+# If COLUMNS hasn't been set yet (bash sets it but not when called as
+# sh), do it ourself
+
+	if [ -z "$COLUMNS" ]
+    	then
+        	# Get the console device if we don't have it already
+        	test -z "$CONSOLE" && CONSOLE=/dev/console
+ 
+    		# Get the console size (rows columns)
+        	SIZE=$(stty size < $CONSOLE)
+ 
+    		# Strip off the rows leaving the columns
+      		COLUMNS=${SIZE#*\ }
+	fi
+ 
+COL=$[$COLUMNS - 10]
+WCOL=$[$COLUMNS - 30]
 SET_COL="echo -en \\033[${COL}G"
 SET_WCOL="echo -en \\033[${WCOL}G"
 NORMAL="echo -en \\033[0;39m"