Never been to CodeSnippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world (or not, you can keep them private!)

2 total

Vertical & horizontal split for man screen

See: Compiling screen from CVS on OSX for vertical split and Terminal Productivity Tips

export PATH=/usr/local/bin:/usr/local/sbin:/usr/local/lib:/usr/local/include:/usr/bin:/bin:/usr/sbin:/sbin
export IFS=$' \t\n'

# compile & install gawk on Mac OS X
# http://www.gnu.org/software/gawk/

cd ~/Desktop
/usr/bin/curl -L -O http://ftp.gnu.org/pub/gnu/gawk/gawk-3.1.6.tar.gz
/usr/bin/tar -xzf gawk-3.1.6.tar.gz
cd gawk-3.1.6
./configure --help
./configure --disable-nls --prefix=/usr/local
/usr/bin/make
/usr/bin/sudo /usr/bin/make install

/usr/local/bin/gawk --version
stat -x /usr/local/bin/gawk


# enable download from cvs.savannah.gnu.org through ipfw firewall
# cf. Example ipfw ruleset, http://codesnippets.joyent.com/posts/show/1267

# get the IP address
host cvs.savannah.gnu.org
dig -x 199.232.41.69 +short

grep cvs /etc/services
zgrep ':2401' /private/var/log/ipfw*


# get a free ipfw rule number
/usr/sbin/sysctl -n net.inet.ip.fw.autoinc_step
/usr/bin/sudo /sbin/ipfw list

# choose appropriate numbers for num1 & num2 according to your ipfw ruleset
function free_ipfw_num() {
   declare -i num1=6701 num2=6799 lastipfwnum
   if [[ $(/usr/sbin/sysctl -n net.inet.ip.fw.autoinc_step) -ne 100 ]]; then return 1; fi
   lastipfwnum=$(/usr/bin/sudo /sbin/ipfw list | /usr/bin/tail -n 2 | /usr/bin/head -n 1 | /usr/bin/awk '{print $1}')
   if [[ $lastipfwnum -lt $num2 ]]; then return 1; fi
   #while [[ -n $(/usr/bin/sudo /sbin/ipfw list | /usr/bin/awk -v n1=$num1 -v n2=$num2 '$1 >= n1 && $1 < n2 {print $1;}') ]]; do
   while $(/usr/bin/sudo /sbin/ipfw show ${num1} &>/dev/null) ; do
      let "num1 += 1"
      if [[ $num1 -gt $num2 ]]; then num1=; break; return 1; fi
   done
   echo $num1
   return 0
}

free_ipfw_num   # 6701


# allow internet traffic to & from cvs.savannah.gnu.org (port 2401) through ipfw
/usr/bin/sudo /sbin/ipfw -q add 6701 allow log { src-ip 199.232.41.69 or dst-ip 199.232.41.69 } dst-port 2401 keep-state

# alternatives
#/usr/bin/sudo /sbin/ipfw -q add 6701 allow log { tcp or udp } from me to 199.232.41.69 dst-port 2401 keep-state
#/usr/bin/sudo /sbin/ipfw -q add 6701 allow log { tcp or udp } from me to any dst-port 2401 keep-state


/usr/bin/sudo /sbin/ipfw show 6701

# delete rule again after download (see below)
#/usr/bin/sudo /sbin/ipfw -q delete 6701



# cf. Compiling screen from CVS on OSX for vertical split,
# http://writequit.org/blog/?p=183

cd ~/Desktop

/usr/bin/cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/screen co screen

/usr/bin/sudo /sbin/ipfw -q delete 6701
/usr/bin/sudo /sbin/ipfw show 6701

cd screen/src

/usr/bin/patch < /opt/local/var/macports/sources/rsync.macports.org/release/ports/sysutils/screen/files/patch-maxargs
/usr/bin/patch < /opt/local/var/macports/sources/rsync.macports.org/release/ports/sysutils/screen/files/patch-windowsize
/usr/bin/patch < /opt/local/var/macports/sources/rsync.macports.org/release/ports/sysutils/screen/files/patch-pty.c

./configure --help


#./configure --enable-locale --enable-telnet --enable-colors256 --enable-rxct_osc

./configure --prefix=/usr/local --enable-locale --enable-telnet --enable-colors256 --enable-rxct_osc

/usr/bin/make

/usr/bin/sudo /usr/bin/make install


#--------------------------------------


ls -l /usr/local/bin/screen

find -x /usr/local -name "screen*"
man /usr/local/man/man1/screen.1
info /usr/local/info/screen.info

alias screen=/usr/local/bin/screen

screen -v   # Screen version 4.00.03jw4 (FAU) 2-May-06
screen --help

# horizontal split
# cf. http://www.afp548.com/article.php?story=20070525141734763
screen -q
[ctrl-a][shift-s]
[ctrl-a][tab]
[ctrl-a][c]
top -du
[ctrl-a][shift-s]
[ctrl-a][tab]
[ctrl-a][c]
exit
[ctrl-a][tab]
exit
[ctrl-a][tab]
q
exit


# vertical split
# cf. http://writequit.org/blog/?p=183

screen -q
[ctrl-a][alt-|]
[ctrl-a]:resize 25
[ctrl-a]:resize 30%
[ctrl-a][tab]
[ctrl-a][c]
top -du
[ctrl-a][alt-|]
[ctrl-a][tab]
[ctrl-a][c]
exit
[ctrl-a][tab]
exit
[ctrl-a][tab]
q
exit

Flip Vertical

Procedura odbija bitmapę względem osi X
procedure FlipVertical(var Bitmap:TBitmap);
var
ByteTop,ByteBottom:^Byte;
ByteTemp:Byte;
H,V:Integer;
begin
for V:=0 to (Bitmap.Height -1 ) div 2 do
  begin
  ByteTop:=Bitmap.ScanLine[V];
  ByteBottom:=Bitmap.ScanLine[Bitmap.Height -1-V];
  for H:=0 to Bitmap.Width *3 -1 do
    begin
    ByteTemp:=ByteTop^;
    ByteTop^:=ByteBottom^;
    ByteBottom^:=ByteTemp;
    inc(ByteTop);
    inc(ByteBottom);
    end;
  end;
end;de
2 total