]> git.zndr.dk Git - dotfiles.git/commitdiff
Old work PC
authorJannik ZANDER <jzander@grundfos.com>
Fri, 20 Oct 2017 07:55:01 +0000 (09:55 +0200)
committerJannik ZANDER <jzander@grundfos.com>
Fri, 20 Oct 2017 07:55:01 +0000 (09:55 +0200)
45 files changed:
.Xresources
.bash_profile
.config/bash/aliases
.config/bash/completion
.config/bash/functions
.config/bash/options
.config/bash/prompt.bash
.config/bash/solarized
.config/git/config
.config/git/ignore
.config/git/templates/config
.config/git/templates/hooks/cscope
.config/git/templates/hooks/ctags
.config/git/templates/hooks/gtags
.config/git/templates/hooks/post-applypatch
.config/git/templates/hooks/post-checkout
.config/git/templates/hooks/post-commit
.config/git/templates/hooks/post-merge
.config/git/templates/hooks/post-rewrite
.config/profile/environ.sh
.config/profile/install.sh
.config/profile/paths.sh
.config/user-dirs.dirs
.cshrc
.dir_colors
.gitignore
.inputrc
.profile
.screenrc
.ssh/config [deleted file]
.tmux.conf
.vimrc
Library/Keyboard Layouts/usdanish.bundle/Contents/Info.plist
Library/Keyboard Layouts/usdanish.bundle/Contents/Resources/U.S.Denmark.keylayout
Library/Keyboard Layouts/usdanish.bundle/Contents/version.plist
README.md
bin/build-akmod.sh
bin/build-luajit.sh
bin/colortest
bin/genilog.cmd
bin/git-diffall.sh
bin/git-difftool.sh
bin/git-editor.sh
bin/git-mergetool.sh
bin/git-review

index bcc4a32ea42919ee1b61b68d83e83394ffc02cd3..da2bd02dc95bfac66085c86cf1b556ce63047dc8 100644 (file)
-!!SOLARIZED HEX     16/8 TERMCOL  XTERM/HEX   L*A*B      RGB         HSB
-!!--------- ------- ---- -------  ----------- ---------- ----------- -----------
-!!base03    #002b36  8/4 brblack  234 #1c1c1c 15 -12 -12   0  43  54 193 100  21
-!!base02    #073642  0/4 black    235 #262626 20 -12 -12   7  54  66 192  90  26
-!!base01    #586e75 10/7 brgreen  240 #585858 45 -07 -07  88 110 117 194  25  46
-!!base00    #657b83 11/7 bryellow 241 #626262 50 -07 -07 101 123 131 195  23  51
-!!base0     #839496 12/6 brblue   244 #808080 60 -06 -03 131 148 150 186  13  59
-!!base1     #93a1a1 14/4 brcyan   245 #8a8a8a 65 -05 -02 147 161 161 180   9  63
-!!base2     #eee8d5  7/7 white    254 #e4e4e4 92 -00  10 238 232 213  44  11  93
-!!base3     #fdf6e3 15/7 brwhite  230 #ffffd7 97  00  10 253 246 227  44  10  99
-!!yellow    #b58900  3/3 yellow   136 #af8700 60  10  65 181 137   0  45 100  71
-!!orange    #cb4b16  9/3 brred    166 #d75f00 50  50  55 203  75  22  18  89  80
-!!red       #dc322f  1/1 red      160 #d70000 50  65  45 220  50  47   1  79  86
-!!magenta   #d33682  5/5 magenta  125 #af005f 50  65 -05 211  54 130 331  74  83
-!!violet    #6c71c4 13/5 brmagenta 61 #5f5faf 50  15 -45 108 113 196 237  45  77
-!!blue      #268bd2  4/4 blue      33 #0087ff 55 -10 -45  38 139 210 205  82  82
-!!cyan      #2aa198  6/6 cyan      37 #00afaf 60 -35 -05  42 161 152 175  74  63
-!!green     #859900  2/2 green     64 #5f8700 60 -20  65 133 153   0  68 100  60
-
-#define SOLARIZED_DARK
-#ifdef SOLARIZED_DARK
-#define S_base03        #002b36
-#define S_base02        #073642
-#define S_base01        #586e75
-#define S_base00        #657b83
-#define S_base0         #839496
-#define S_base1         #93a1a1
-#define S_base2         #eee8d5
-#define S_base3         #fdf6e3
-#endif
-
-#ifdef SOLARIZED_LIGHT
-#define S_base3         #002b36
-#define S_base2         #073642
-#define S_base1         #586e75
-#define S_base0         #657b83
-#define S_base00        #839496
-#define S_base01        #93a1a1
-#define S_base02        #eee8d5
-#define S_base03        #fdf6e3
-#endif
-
-#define S_yellow        #b58900
-#define S_orange        #cb4b16
-#define S_red           #dc322f
-#define S_magenta       #d33682
-#define S_violet        #6c71c4
-#define S_blue          #268bd2
-#define S_cyan          #2aa198
-#define S_green         #859900
-
-
-*background:            S_base03
-*foreground:            S_base00
-*fading:                40
-*fadeColor:             S_base03
-*cursorColor:           S_base1
-*pointerColorBackground:S_base01
-*pointerColorForeground:S_base1
-
-!! black dark/light
-*color0:                S_base02
-*color8:                S_base03
-
-!! red dark/light
-*color1:                S_red
-*color9:                S_orange
-
-!! green dark/light
-*color2:                S_green
-*color10:               S_base01
-
-!! yellow dark/light
-*color3:                S_yellow
-*color11:               S_base00
-
-!! blue dark/light
-*color4:                S_blue
-*color12:               S_base0
-
-!! magenta dark/light
-*color5:                S_magenta
-*color13:               S_violet
-
-!! cyan dark/light
-*color6:                S_cyan
-*color14:               S_base1
-
-!! white dark/light
-*color7:                S_base2
-*color15:               S_base3
-
-!! xterm
-XTerm*termName: xterm-256color
-!XTerm*faceName: Mono
-!XTerm*faceSize: 11
-XTerm*metaSendsEscape: true
-XTerm*vt100.translations: #override \n\
-        Ctrl ~Shift <Key>Tab: string(0x1b) string("[34~") \n
-XTerm*toolBar:  off
-XTerm*scrollBar:  true
-XTerm*rightScrollBar: true
-
-!! better font rendering
-Xft.dpi:        96
-Xft.antialias:  true
-Xft.rgba:       rgb
-Xft.hinting:    false
-Xft.hintstyle:  hintnone
-Xft.lcdfilter:  lcddefault
-
-*reverseWrap:      true
-*scrollKey:        true
-*saveLines:        10000
-*scrollBar:        true
-*scrollTtyOutput:  false
-*cutToBeginningOfLine: true
-
-
-dt.obsolete: true
+!!SOLARIZED HEX     16/8 TERMCOL  XTERM/HEX   L*A*B      RGB         HSB\r
+!!--------- ------- ---- -------  ----------- ---------- ----------- -----------\r
+!!base03    #002b36  8/4 brblack  234 #1c1c1c 15 -12 -12   0  43  54 193 100  21\r
+!!base02    #073642  0/4 black    235 #262626 20 -12 -12   7  54  66 192  90  26\r
+!!base01    #586e75 10/7 brgreen  240 #585858 45 -07 -07  88 110 117 194  25  46\r
+!!base00    #657b83 11/7 bryellow 241 #626262 50 -07 -07 101 123 131 195  23  51\r
+!!base0     #839496 12/6 brblue   244 #808080 60 -06 -03 131 148 150 186  13  59\r
+!!base1     #93a1a1 14/4 brcyan   245 #8a8a8a 65 -05 -02 147 161 161 180   9  63\r
+!!base2     #eee8d5  7/7 white    254 #e4e4e4 92 -00  10 238 232 213  44  11  93\r
+!!base3     #fdf6e3 15/7 brwhite  230 #ffffd7 97  00  10 253 246 227  44  10  99\r
+!!yellow    #b58900  3/3 yellow   136 #af8700 60  10  65 181 137   0  45 100  71\r
+!!orange    #cb4b16  9/3 brred    166 #d75f00 50  50  55 203  75  22  18  89  80\r
+!!red       #dc322f  1/1 red      160 #d70000 50  65  45 220  50  47   1  79  86\r
+!!magenta   #d33682  5/5 magenta  125 #af005f 50  65 -05 211  54 130 331  74  83\r
+!!violet    #6c71c4 13/5 brmagenta 61 #5f5faf 50  15 -45 108 113 196 237  45  77\r
+!!blue      #268bd2  4/4 blue      33 #0087ff 55 -10 -45  38 139 210 205  82  82\r
+!!cyan      #2aa198  6/6 cyan      37 #00afaf 60 -35 -05  42 161 152 175  74  63\r
+!!green     #859900  2/2 green     64 #5f8700 60 -20  65 133 153   0  68 100  60\r
+\r
+#define SOLARIZED_DARK\r
+#ifdef SOLARIZED_DARK\r
+#define S_base03        #002b36\r
+#define S_base02        #073642\r
+#define S_base01        #586e75\r
+#define S_base00        #657b83\r
+#define S_base0         #839496\r
+#define S_base1         #93a1a1\r
+#define S_base2         #eee8d5\r
+#define S_base3         #fdf6e3\r
+#endif\r
+\r
+#ifdef SOLARIZED_LIGHT\r
+#define S_base3         #002b36\r
+#define S_base2         #073642\r
+#define S_base1         #586e75\r
+#define S_base0         #657b83\r
+#define S_base00        #839496\r
+#define S_base01        #93a1a1\r
+#define S_base02        #eee8d5\r
+#define S_base03        #fdf6e3\r
+#endif\r
+\r
+#define S_yellow        #b58900\r
+#define S_orange        #cb4b16\r
+#define S_red           #dc322f\r
+#define S_magenta       #d33682\r
+#define S_violet        #6c71c4\r
+#define S_blue          #268bd2\r
+#define S_cyan          #2aa198\r
+#define S_green         #859900\r
+\r
+\r
+*background:            S_base03\r
+*foreground:            S_base00\r
+*fading:                40\r
+*fadeColor:             S_base03\r
+*cursorColor:           S_base1\r
+*pointerColorBackground:S_base01\r
+*pointerColorForeground:S_base1\r
+\r
+!! black dark/light\r
+*color0:                S_base02\r
+*color8:                S_base03\r
+\r
+!! red dark/light\r
+*color1:                S_red\r
+*color9:                S_orange\r
+\r
+!! green dark/light\r
+*color2:                S_green\r
+*color10:               S_base01\r
+\r
+!! yellow dark/light\r
+*color3:                S_yellow\r
+*color11:               S_base00\r
+\r
+!! blue dark/light\r
+*color4:                S_blue\r
+*color12:               S_base0\r
+\r
+!! magenta dark/light\r
+*color5:                S_magenta\r
+*color13:               S_violet\r
+\r
+!! cyan dark/light\r
+*color6:                S_cyan\r
+*color14:               S_base1\r
+\r
+!! white dark/light\r
+*color7:                S_base2\r
+*color15:               S_base3\r
+\r
+!! xterm\r
+XTerm*termName: xterm-256color\r
+!XTerm*faceName: Mono\r
+!XTerm*faceSize: 11\r
+XTerm*metaSendsEscape: true\r
+XTerm*vt100.translations: #override \n\\r
+        Ctrl ~Shift <Key>Tab: string(0x1b) string("[34~") \n\r
+XTerm*toolBar:  off\r
+XTerm*scrollBar:  true\r
+XTerm*rightScrollBar: true\r
+\r
+!! better font rendering\r
+Xft.dpi:        96\r
+Xft.antialias:  true\r
+Xft.rgba:       rgb\r
+Xft.hinting:    false\r
+Xft.hintstyle:  hintnone\r
+Xft.lcdfilter:  lcddefault\r
+\r
+*reverseWrap:      true\r
+*scrollKey:        true\r
+*saveLines:        10000\r
+*scrollBar:        true\r
+*scrollTtyOutput:  false\r
+*cutToBeginningOfLine: true\r
+\r
+\r
+dt.obsolete: true\r
index f8f9564790294582358f56dc7518633f0f1a1c4d..e8e53b6f85b19de222e808aca979999d1f147a97 100644 (file)
@@ -1 +1 @@
-[ -f ~/.profile ] && source ~/.profile
+[ -f ~/.profile ] && source ~/.profile\r
index bf0c21b3913b2759a46476e850c2c84b34caab52..9a8c67c2c8cbab3a8b3cad9fe53174eedcc4c76d 100644 (file)
@@ -87,4 +87,4 @@ alias startxwin='run /usr/bin/bash.exe -l -c "/usr/bin/startxwin -- -nolock -uni
 alias startvnc='vncserver -geometry 1870x980 -depth 24'\r
 alias startvnc4='vnc4server -geometry 1870x980 -depth 24'\r
 alias dot='git --git-dir=$HOME/.dotfiles --work-tree=$HOME'\r
-alias genilog='$HOME/repos/genilog/genilog.py'\r
+alias genilog='/c/projects/genilog/genilog.py'\r
index b1460ace04383003ced28bc7b8c588e9e3b56a73..e23497e3fc7dc21f668a0124f92b212cc03e97f4 100644 (file)
@@ -1,15 +1,15 @@
-# Add tab completion for many Bash commands
-
-[ -f /etc/bash_completion ] && . /etc/bash_completion
-
-[ -f "${HOME}/.cache/bash/git-completion.bash" ] && . "${HOME}/.cache/bash/git-completion.bash"
-
-# Enable tab completion for `g` by marking it as an alias for `git`
-if type _git &> /dev/null; then
-  complete -o default -o nospace -F _git g;
-fi;
-
-# Add tab completion for SSH hostnames based on ~/.ssh/config, ignoring wildcards
-if [ -e "$HOME/.ssh/config" ]; then
-  complete -o "default" -o "nospace" -W "$(grep "^Host" ~/.ssh/config | grep -v "[?*]" | cut -d " " -f2 | tr ' ' '\n')" scp sftp ssh;
-fi;
+# Add tab completion for many Bash commands\r
+\r
+[ -f /etc/bash_completion ] && . /etc/bash_completion\r
+\r
+[ -f "${HOME}/.cache/bash/git-completion.bash" ] && . "${HOME}/.cache/bash/git-completion.bash"\r
+\r
+# Enable tab completion for `g` by marking it as an alias for `git`\r
+if type _git &> /dev/null; then\r
+  complete -o default -o nospace -F _git g;\r
+fi;\r
+\r
+# Add tab completion for SSH hostnames based on ~/.ssh/config, ignoring wildcards\r
+if [ -e "$HOME/.ssh/config" ]; then\r
+  complete -o "default" -o "nospace" -W "$(grep "^Host" ~/.ssh/config | grep -v "[?*]" | cut -d " " -f2 | tr ' ' '\n')" scp sftp ssh;\r
+fi;\r
index cabbbc05cf71a8246d6373f4922cb9afefa4ec03..2aab04b160dbc09ee320ef1725832172ced01eac 100644 (file)
@@ -1,80 +1,80 @@
-# Create a new directory and enter it
-function mkd() {
-  mkdir -p "$@" && cd "$@";
-}
-
-# `v` with no arguments opens the current directory in Vim, otherwise opens the
-# given location
-function v() {
-  if [ $# -eq 0 ]; then
-    vim .;
-  else
-    vim "$@";
-  fi;
-}
-
-# `o` with no arguments opens the current directory, otherwise opens the given
-# location
-function o() {
-  if [ $# -eq 0 ]; then
-    open .;
-  else
-    open "$@";
-  fi;
-}
-
-# This function defines a 'cd' replacement function capable of keeping,
-# displaying and accessing history of visited directories, up to 10 entries.
-# To use it, uncomment it, source this file and try 'cd --'.
-
-cd_func()
-{
-  local x2 the_new_dir adir index
-  local -i cnt
-
-  if [[ $1 ==  "--" ]]; then
-    dirs -v
-    return 0
-  fi
-
-  the_new_dir=$1
-  [[ -z $1 ]] && the_new_dir=$HOME
-
-  if [[ ${the_new_dir:0:1} == '-' ]]; then
-    #
-    # Extract dir N from dirs
-    index=${the_new_dir:1}
-    [[ -z $index ]] && index=1
-    adir=$(dirs +$index)
-    [[ -z $adir ]] && return 1
-    the_new_dir=$adir
-  fi
-
-  #
-  # '~' has to be substituted by ${HOME}
-  [[ ${the_new_dir:0:1} == '~' ]] && the_new_dir="${HOME}${the_new_dir:1}"
-
-  #
-  # Now change to the new dir and add to the top of the stack
-  pushd "${the_new_dir}" > /dev/null
-  [[ $? -ne 0 ]] && return 1
-  the_new_dir=$(pwd)
-
-  #
-  # Trim down everything beyond 11th entry
-  popd -n +11 2>/dev/null 1>/dev/null
-
-  #
-  # Remove any other occurence of this dir, skipping the top of the stack
-  for ((cnt=1; cnt <= 10; cnt++)); do
-    x2=$(dirs +${cnt} 2>/dev/null)
-    [[ $? -ne 0 ]] && return 0
-    [[ ${x2:0:1} == '~' ]] && x2="${HOME}${x2:1}"
-    if [[ "${x2}" == "${the_new_dir}" ]]; then
-      popd -n +$cnt 2>/dev/null 1>/dev/null
-      cnt=cnt-1
-    fi
-  done
-
-  return 0
-}
+# Create a new directory and enter it\r
+function mkd() {\r
+  mkdir -p "$@" && cd "$@";\r
+}\r
+\r
+# `v` with no arguments opens the current directory in Vim, otherwise opens the\r
+# given location\r
+function v() {\r
+  if [ $# -eq 0 ]; then\r
+    vim .;\r
+  else\r
+    vim "$@";\r
+  fi;\r
+}\r
+\r
+# `o` with no arguments opens the current directory, otherwise opens the given\r
+# location\r
+function o() {\r
+  if [ $# -eq 0 ]; then\r
+    open .;\r
+  else\r
+    open "$@";\r
+  fi;\r
+}\r
+\r
+# This function defines a 'cd' replacement function capable of keeping,\r
+# displaying and accessing history of visited directories, up to 10 entries.\r
+# To use it, uncomment it, source this file and try 'cd --'.\r
+\r
+cd_func()\r
+{\r
+  local x2 the_new_dir adir index\r
+  local -i cnt\r
+\r
+  if [[ $1 ==  "--" ]]; then\r
+    dirs -v\r
+    return 0\r
+  fi\r
+\r
+  the_new_dir=$1\r
+  [[ -z $1 ]] && the_new_dir=$HOME\r
+\r
+  if [[ ${the_new_dir:0:1} == '-' ]]; then\r
+    #\r
+    # Extract dir N from dirs\r
+    index=${the_new_dir:1}\r
+    [[ -z $index ]] && index=1\r
+    adir=$(dirs +$index)\r
+    [[ -z $adir ]] && return 1\r
+    the_new_dir=$adir\r
+  fi\r
+\r
+  #\r
+  # '~' has to be substituted by ${HOME}\r
+  [[ ${the_new_dir:0:1} == '~' ]] && the_new_dir="${HOME}${the_new_dir:1}"\r
+\r
+  #\r
+  # Now change to the new dir and add to the top of the stack\r
+  pushd "${the_new_dir}" > /dev/null\r
+  [[ $? -ne 0 ]] && return 1\r
+  the_new_dir=$(pwd)\r
+\r
+  #\r
+  # Trim down everything beyond 11th entry\r
+  popd -n +11 2>/dev/null 1>/dev/null\r
+\r
+  #\r
+  # Remove any other occurence of this dir, skipping the top of the stack\r
+  for ((cnt=1; cnt <= 10; cnt++)); do\r
+    x2=$(dirs +${cnt} 2>/dev/null)\r
+    [[ $? -ne 0 ]] && return 0\r
+    [[ ${x2:0:1} == '~' ]] && x2="${HOME}${x2:1}"\r
+    if [[ "${x2}" == "${the_new_dir}" ]]; then\r
+      popd -n +$cnt 2>/dev/null 1>/dev/null\r
+      cnt=cnt-1\r
+    fi\r
+  done\r
+\r
+  return 0\r
+}\r
index 3081bae570126b16c0fc8f4e2a56d98c77e3ae47..b49294b06d0902d8cb00a98f4258179450bd9ae8 100644 (file)
@@ -1,20 +1,20 @@
-# Case-insensitive globbing (used in pathname expansion)
-shopt -s nocaseglob;
-
-# Append to the Bash history file, rather than overwriting it
-#shopt -s histappend;
-
-# Autocorrect typos in path names when using `cd`
-shopt -s cdspell;
-
-# Enable some Bash 4 features when possible:
-# * `autocd`, e.g. `**/qux` will enter `./foo/bar/baz/qux`
-# * Recursive globbing, e.g. `echo **/*.txt`
-for option in autocd globstar; do
-  shopt -s "$option" 2> /dev/null;
-done;
-
-# Don't use ^D to exit
-set -o ignoreeof
-set -o vi
-
+# Case-insensitive globbing (used in pathname expansion)\r
+shopt -s nocaseglob;\r
+\r
+# Append to the Bash history file, rather than overwriting it\r
+#shopt -s histappend;\r
+\r
+# Autocorrect typos in path names when using `cd`\r
+shopt -s cdspell;\r
+\r
+# Enable some Bash 4 features when possible:\r
+# * `autocd`, e.g. `**/qux` will enter `./foo/bar/baz/qux`\r
+# * Recursive globbing, e.g. `echo **/*.txt`\r
+for option in autocd globstar; do\r
+  shopt -s "$option" 2> /dev/null;\r
+done;\r
+\r
+# Don't use ^D to exit\r
+set -o ignoreeof\r
+set -o vi\r
+\r
index ffdbf57f1e7362e006ac4650b04cd6a0047900b4..fba624417f1a1a218e94539b7f130bcfdce310d4 100644 (file)
-#!/bin/bash
-
-# bash_prompt
-
-# iTerm2 prefs: import Solarized theme (disable bright colors for bold text)
-# Color ref: http://vim.wikia.com/wiki/Xterm256_color_names_for_console_Vim
-# More tips: http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html
-
-if [[ $COLORTERM = gnome-* && $TERM = xterm ]] && infocmp gnome-256color >/dev/null 2>&1; then
-  export TERM='gnome-256color';
-elif infocmp xterm-256color >/dev/null 2>&1; then
-  export TERM='xterm-256color';
-fi;
-
-if [ -f "${HOME}/.cache/bash/git-prompt.sh" ]; then
-  . "${HOME}/.cache/bash/git-prompt.sh"
-
-  # Enabling any of these options will slow down the prompt
-  export GIT_PS1_SHOWDIRTYSTATE='y'
-  export GIT_PS1_SHOWSTASHSTATE='y'
-  export GIT_PS1_SHOWUNTRACKEDFILES='y'
-  export GIT_PS1_DESCRIBE_STYLE='contains'
-  export GIT_PS1_SHOWUPSTREAM='auto'
-fi
-
-# Solarized colors
-# (https://github.com/altercation/solarized/tree/master/iterm2-colors-solarized#the-values)
-set_prompts()
-{
-#  GREEN="\[$(tput setaf 2)\]"
-#  RESET="\[$(tput sgr0)\]"
-#
-## Reset
-#Color_Off="\[\033[0m\]"       # Text Reset
-#
-## Regular Colors
-#Black="\[\033[0;30m\]"        # Black
-#Red="\[\033[0;31m\]"          # Red
-#Green="\[\033[0;32m\]"        # Green
-#Yellow="\[\033[0;33m\]"       # Yellow
-#Blue="\[\033[0;34m\]"         # Blue
-#Purple="\[\033[0;35m\]"       # Purple
-#Cyan="\[\033[0;36m\]"         # Cyan
-#White="\[\033[0;37m\]"        # White
-#
-## Bold
-#BBlack="\[\033[1;30m\]"       # Black
-#BRed="\[\033[1;31m\]"         # Red
-#BGreen="\[\033[1;32m\]"       # Green
-#BYellow="\[\033[1;33m\]"      # Yellow
-#BBlue="\[\033[1;34m\]"        # Blue
-#BPurple="\[\033[1;35m\]"      # Purple
-#BCyan="\[\033[1;36m\]"        # Cyan
-#BWhite="\[\033[1;37m\]"       # White
-#
-## Underline
-#UBlack="\[\033[4;30m\]"       # Black
-#URed="\[\033[4;31m\]"         # Red
-#UGreen="\[\033[4;32m\]"       # Green
-#UYellow="\[\033[4;33m\]"      # Yellow
-#UBlue="\[\033[4;34m\]"        # Blue
-#UPurple="\[\033[4;35m\]"      # Purple
-#UCyan="\[\033[4;36m\]"        # Cyan
-#UWhite="\[\033[4;37m\]"       # White
-#
-## Background
-#On_Black="\[\033[40m\]"       # Black
-#On_Red="\[\033[41m\]"         # Red
-#On_Green="\[\033[42m\]"       # Green
-#On_Yellow="\[\033[43m\]"      # Yellow
-#On_Blue="\[\033[44m\]"        # Blue
-#On_Purple="\[\033[45m\]"      # Purple
-#On_Cyan="\[\033[46m\]"        # Cyan
-#On_White="\[\033[47m\]"       # White
-#
-## High Intensty
-#IBlack="\[\033[0;90m\]"       # Black
-#IRed="\[\033[0;91m\]"         # Red
-#IGreen="\[\033[0;92m\]"       # Green
-#IYellow="\[\033[0;93m\]"      # Yellow
-#IBlue="\[\033[0;94m\]"        # Blue
-#IPurple="\[\033[0;95m\]"      # Purple
-#ICyan="\[\033[0;96m\]"        # Cyan
-#IWhite="\[\033[0;97m\]"       # White
-#
-## Bold High Intensty
-#BIBlack="\[\033[1;90m\]"      # Black
-#BIRed="\[\033[1;91m\]"        # Red
-#BIGreen="\[\033[1;92m\]"      # Green
-#BIYellow="\[\033[1;93m\]"     # Yellow
-#BIBlue="\[\033[1;94m\]"       # Blue
-#BIPurple="\[\033[1;95m\]"     # Purple
-#BICyan="\[\033[1;96m\]"       # Cyan
-#BIWhite="\[\033[1;97m\]"      # White
-#
-## High Intensty backgrounds
-#On_IBlack="\[\033[0;100m\]"   # Black
-#On_IRed="\[\033[0;101m\]"     # Red
-#On_IGreen="\[\033[0;102m\]"   # Green
-#On_IYellow="\[\033[0;103m\]"  # Yellow
-#On_IBlue="\[\033[0;104m\]"    # Blue
-#On_IPurple="\[\033[10;95m\]"  # Purple
-#On_ICyan="\[\033[0;106m\]"    # Cyan
-#On_IWhite="\[\033[0;107m\]"   # White
-#
-## Various variables you might want for your PS1 prompt instead
-#Time12h="\T"
-#Time12a="\@"
-#PathShort="\w"
-#PathFull="\W"
-#NewLine="\n"
-#Jobs="\j"
-#export PS1="${GREEN}my prompt${RESET}> "
-
-  if [ -x /usr/bin/tput ] && tput setaf 1 >& /dev/null; then
-    bold=$(tput bold)
-    reset=$(tput sgr0)
-
-    black=$(tput setaf 0)
-    blue=$(tput setaf 33)
-    cyan=$(tput setaf 37)
-    green=$(tput setaf 64)
-    orange=$(tput setaf 166)
-    purple=$(tput setaf 125)
-    red=$(tput setaf 124)
-    violet=$(tput setaf 61)
-    white=$(tput setaf 15)
-    yellow=$(tput setaf 136)
-  else
-    bold=""
-    reset="\e[0m"
-
-    black="\e[1;30m"
-    blue="\e[1;34m"
-    cyan="\e[1;36m"
-    green="\e[1;32m"
-    orange="\e[1;33m"
-    purple="\e[1;35m"
-    red="\e[1;31m"
-    violet="\e[1;35m"
-    white="\e[1;37m"
-    yellow="\e[1;33m"
-  fi
-
-  # build the prompt
-  fg="$white"
-
-  # logged in as root
-  if [[ "$USER" == "root" ]]; then
-      userStyle="$bold$red"
-  else
-      userStyle="$orange"
-  fi
-
-  # connected via ssh
-  if [[ "$SSH_TTY" ]]; then
-      hostStyle="$bold$red"
-  else
-      hostStyle="$yellow"
-  fi
-
-  # Set the terminal title to the current working directory.
-  PS1="\[\033]0;\w\007\]"
-
-  if [[ "$TERM" == *color ]]; then
-#    PS1+=$'\r' # carriage return
-    PS1+="\[$userStyle\]\u" # username
-    PS1+="\[$reset$fg\] at "
-    PS1+="\[$hostStyle\]\h" # host
-    PS1+="\[$reset$fg\] in "
-    PS1+="\[$green\]\w" # working directory
-  #  PS1+="\$(prompt_git \"$white on $cyan\")" # git repository details
-    PS1+="\$(__git_ps1 '\[${fg}\] on \[${cyan}\]%s')";  # on branch
-    PS1+=$'\n' # newline
-    PS1+="\[$reset$fg\]\$ \[$reset\]" # $ (and reset color)
-
-    PS2="\[${yellow}\]-> "
-    PS2+="\[${reset}\]" # reset color
-  else # no colors
-    PS1+=$'\r' # carriage return
-    PS1+="\u at \h in \w on \$(__git_ps1 %s)"
-    PS1+=$'\n''\$ ' # newline and $
-
-    PS2="-> "
-  fi
-
-  export PS1 PS2
-}
-
-
-set_prompts
-unset set_prompts
-
-# When the shell exits, append to the history file instead of overwriting it
-shopt -s histappend
-# Larger bash history
-export HISTFILESIZE=10000;
-export HISTSIZE=5000;
-export HISTCONTROL=ignoreboth:erasedups
-export HISTIGNORE="ll:ls:cd:cd -:pwd:exit:date:* --help";
-# Whenever displaying the prompt, write the previous line to disk
-export PROMPT_COMMAND="history -a"
-
+#!/bin/bash\r
+\r
+# bash_prompt\r
+\r
+# iTerm2 prefs: import Solarized theme (disable bright colors for bold text)\r
+# Color ref: http://vim.wikia.com/wiki/Xterm256_color_names_for_console_Vim\r
+# More tips: http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html\r
+\r
+if [[ $COLORTERM = gnome-* && $TERM = xterm ]] && infocmp gnome-256color >/dev/null 2>&1; then\r
+  export TERM='gnome-256color';\r
+elif infocmp xterm-256color >/dev/null 2>&1; then\r
+  export TERM='xterm-256color';\r
+fi;\r
+\r
+if [ -f "${HOME}/.cache/bash/git-prompt.sh" ]; then\r
+  . "${HOME}/.cache/bash/git-prompt.sh"\r
+\r
+  # Enabling any of these options will slow down the prompt\r
+  export GIT_PS1_SHOWDIRTYSTATE='y'\r
+  export GIT_PS1_SHOWSTASHSTATE='y'\r
+  export GIT_PS1_SHOWUNTRACKEDFILES='y'\r
+  export GIT_PS1_DESCRIBE_STYLE='contains'\r
+  export GIT_PS1_SHOWUPSTREAM='auto'\r
+fi\r
+\r
+# Solarized colors\r
+# (https://github.com/altercation/solarized/tree/master/iterm2-colors-solarized#the-values)\r
+set_prompts()\r
+{\r
+#  GREEN="\[$(tput setaf 2)\]"\r
+#  RESET="\[$(tput sgr0)\]"\r
+#\r
+## Reset\r
+#Color_Off="\[\033[0m\]"       # Text Reset\r
+#\r
+## Regular Colors\r
+#Black="\[\033[0;30m\]"        # Black\r
+#Red="\[\033[0;31m\]"          # Red\r
+#Green="\[\033[0;32m\]"        # Green\r
+#Yellow="\[\033[0;33m\]"       # Yellow\r
+#Blue="\[\033[0;34m\]"         # Blue\r
+#Purple="\[\033[0;35m\]"       # Purple\r
+#Cyan="\[\033[0;36m\]"         # Cyan\r
+#White="\[\033[0;37m\]"        # White\r
+#\r
+## Bold\r
+#BBlack="\[\033[1;30m\]"       # Black\r
+#BRed="\[\033[1;31m\]"         # Red\r
+#BGreen="\[\033[1;32m\]"       # Green\r
+#BYellow="\[\033[1;33m\]"      # Yellow\r
+#BBlue="\[\033[1;34m\]"        # Blue\r
+#BPurple="\[\033[1;35m\]"      # Purple\r
+#BCyan="\[\033[1;36m\]"        # Cyan\r
+#BWhite="\[\033[1;37m\]"       # White\r
+#\r
+## Underline\r
+#UBlack="\[\033[4;30m\]"       # Black\r
+#URed="\[\033[4;31m\]"         # Red\r
+#UGreen="\[\033[4;32m\]"       # Green\r
+#UYellow="\[\033[4;33m\]"      # Yellow\r
+#UBlue="\[\033[4;34m\]"        # Blue\r
+#UPurple="\[\033[4;35m\]"      # Purple\r
+#UCyan="\[\033[4;36m\]"        # Cyan\r
+#UWhite="\[\033[4;37m\]"       # White\r
+#\r
+## Background\r
+#On_Black="\[\033[40m\]"       # Black\r
+#On_Red="\[\033[41m\]"         # Red\r
+#On_Green="\[\033[42m\]"       # Green\r
+#On_Yellow="\[\033[43m\]"      # Yellow\r
+#On_Blue="\[\033[44m\]"        # Blue\r
+#On_Purple="\[\033[45m\]"      # Purple\r
+#On_Cyan="\[\033[46m\]"        # Cyan\r
+#On_White="\[\033[47m\]"       # White\r
+#\r
+## High Intensty\r
+#IBlack="\[\033[0;90m\]"       # Black\r
+#IRed="\[\033[0;91m\]"         # Red\r
+#IGreen="\[\033[0;92m\]"       # Green\r
+#IYellow="\[\033[0;93m\]"      # Yellow\r
+#IBlue="\[\033[0;94m\]"        # Blue\r
+#IPurple="\[\033[0;95m\]"      # Purple\r
+#ICyan="\[\033[0;96m\]"        # Cyan\r
+#IWhite="\[\033[0;97m\]"       # White\r
+#\r
+## Bold High Intensty\r
+#BIBlack="\[\033[1;90m\]"      # Black\r
+#BIRed="\[\033[1;91m\]"        # Red\r
+#BIGreen="\[\033[1;92m\]"      # Green\r
+#BIYellow="\[\033[1;93m\]"     # Yellow\r
+#BIBlue="\[\033[1;94m\]"       # Blue\r
+#BIPurple="\[\033[1;95m\]"     # Purple\r
+#BICyan="\[\033[1;96m\]"       # Cyan\r
+#BIWhite="\[\033[1;97m\]"      # White\r
+#\r
+## High Intensty backgrounds\r
+#On_IBlack="\[\033[0;100m\]"   # Black\r
+#On_IRed="\[\033[0;101m\]"     # Red\r
+#On_IGreen="\[\033[0;102m\]"   # Green\r
+#On_IYellow="\[\033[0;103m\]"  # Yellow\r
+#On_IBlue="\[\033[0;104m\]"    # Blue\r
+#On_IPurple="\[\033[10;95m\]"  # Purple\r
+#On_ICyan="\[\033[0;106m\]"    # Cyan\r
+#On_IWhite="\[\033[0;107m\]"   # White\r
+#\r
+## Various variables you might want for your PS1 prompt instead\r
+#Time12h="\T"\r
+#Time12a="\@"\r
+#PathShort="\w"\r
+#PathFull="\W"\r
+#NewLine="\n"\r
+#Jobs="\j"\r
+#export PS1="${GREEN}my prompt${RESET}> "\r
+\r
+  if [ -x /usr/bin/tput ] && tput setaf 1 >& /dev/null; then\r
+    bold=$(tput bold)\r
+    reset=$(tput sgr0)\r
+\r
+    black=$(tput setaf 0)\r
+    blue=$(tput setaf 33)\r
+    cyan=$(tput setaf 37)\r
+    green=$(tput setaf 64)\r
+    orange=$(tput setaf 166)\r
+    purple=$(tput setaf 125)\r
+    red=$(tput setaf 124)\r
+    violet=$(tput setaf 61)\r
+    white=$(tput setaf 15)\r
+    yellow=$(tput setaf 136)\r
+  else\r
+    bold=""\r
+    reset="\e[0m"\r
+\r
+    black="\e[1;30m"\r
+    blue="\e[1;34m"\r
+    cyan="\e[1;36m"\r
+    green="\e[1;32m"\r
+    orange="\e[1;33m"\r
+    purple="\e[1;35m"\r
+    red="\e[1;31m"\r
+    violet="\e[1;35m"\r
+    white="\e[1;37m"\r
+    yellow="\e[1;33m"\r
+  fi\r
+\r
+  # build the prompt\r
+  fg="$white"\r
+\r
+  # logged in as root\r
+  if [[ "$USER" == "root" ]]; then\r
+      userStyle="$bold$red"\r
+  else\r
+      userStyle="$orange"\r
+  fi\r
+\r
+  # connected via ssh\r
+  if [[ "$SSH_TTY" ]]; then\r
+      hostStyle="$bold$red"\r
+  else\r
+      hostStyle="$yellow"\r
+  fi\r
+\r
+  # Set the terminal title to the current working directory.\r
+  PS1="\[\033]0;\w\007\]"\r
+\r
+  if [[ "$TERM" == *color ]]; then\r
+#    PS1+=$'\r' # carriage return\r
+    PS1+="\[$userStyle\]\u" # username\r
+    PS1+="\[$reset$fg\] at "\r
+    PS1+="\[$hostStyle\]\h" # host\r
+    PS1+="\[$reset$fg\] in "\r
+    PS1+="\[$green\]\w" # working directory\r
+  #  PS1+="\$(prompt_git \"$white on $cyan\")" # git repository details\r
+    PS1+="\$(__git_ps1 '\[${fg}\] on \[${cyan}\]%s')";  # on branch\r
+    PS1+=$'\n' # newline\r
+    PS1+="\[$reset$fg\]\$ \[$reset\]" # $ (and reset color)\r
+\r
+    PS2="\[${yellow}\]-> "\r
+    PS2+="\[${reset}\]" # reset color\r
+  else # no colors\r
+    PS1+=$'\r' # carriage return\r
+    PS1+="\u at \h in \w on \$(__git_ps1 %s)"\r
+    PS1+=$'\n''\$ ' # newline and $\r
+\r
+    PS2="-> "\r
+  fi\r
+\r
+  export PS1 PS2\r
+}\r
+\r
+\r
+set_prompts\r
+unset set_prompts\r
+\r
+# When the shell exits, append to the history file instead of overwriting it\r
+shopt -s histappend\r
+# Larger bash history\r
+export HISTFILESIZE=10000;\r
+export HISTSIZE=5000;\r
+export HISTCONTROL=ignoreboth:erasedups\r
+export HISTIGNORE="ll:ls:cd:cd -:pwd:exit:date:* --help";\r
+# Whenever displaying the prompt, write the previous line to disk\r
+export PROMPT_COMMAND="history -a"\r
+\r
index 180196d6a8e4684a8cc9a4630c1d8fe76711eba9..cdb1920e82351311a621dab089b535238313bd23 100644 (file)
@@ -1,23 +1,23 @@
-[[ "$OSTYPE" == *darwin* ]] && return;
-
-echo -ne   '\eP\e]10;#839496\a'  # Foreground   -> base0
-echo -ne   '\eP\e]11;#002B36\a'  # Background   -> base03
-
-echo -ne   '\eP\e]12;#DC322F\a'  # Cursor       -> red
-
-echo -ne  '\eP\e]4;0;#073642\a'  # black        -> Base02
-echo -ne  '\eP\e]4;8;#002B36\a'  # bold black   -> Base03
-echo -ne  '\eP\e]4;1;#DC322F\a'  # red          -> red
-echo -ne  '\eP\e]4;9;#CB4B16\a'  # bold red     -> orange
-echo -ne  '\eP\e]4;2;#859900\a'  # green        -> green
-echo -ne '\eP\e]4;10;#586E75\a'  # bold green   -> base01 *
-echo -ne  '\eP\e]4;3;#B58900\a'  # yellow       -> yellow
-echo -ne '\eP\e]4;11;#657B83\a'  # bold yellow  -> base00 *
-echo -ne  '\eP\e]4;4;#268BD2\a'  # blue         -> blue
-echo -ne '\eP\e]4;12;#839496\a'  # bold blue    -> base0 *
-echo -ne  '\eP\e]4;5;#D33682\a'  # magenta      -> magenta
-echo -ne '\eP\e]4;13;#6C71C4\a'  # bold magenta -> violet
-echo -ne  '\eP\e]4;6;#2AA198\a'  # cyan         -> cyan
-echo -ne '\eP\e]4;14;#93A1A1\a'  # bold cyan    -> base1 *
-echo -ne  '\eP\e]4;7;#EEE8D5\a'  # white        -> Base2
-echo -ne '\eP\e]4;15;#FDF6E3\a'  # bold white   -> Base3
+[[ "$OSTYPE" == *darwin* ]] && return;\r
+\r
+echo -ne   '\eP\e]10;#839496\a'  # Foreground   -> base0\r
+echo -ne   '\eP\e]11;#002B36\a'  # Background   -> base03\r
+\r
+echo -ne   '\eP\e]12;#DC322F\a'  # Cursor       -> red\r
+\r
+echo -ne  '\eP\e]4;0;#073642\a'  # black        -> Base02\r
+echo -ne  '\eP\e]4;8;#002B36\a'  # bold black   -> Base03\r
+echo -ne  '\eP\e]4;1;#DC322F\a'  # red          -> red\r
+echo -ne  '\eP\e]4;9;#CB4B16\a'  # bold red     -> orange\r
+echo -ne  '\eP\e]4;2;#859900\a'  # green        -> green\r
+echo -ne '\eP\e]4;10;#586E75\a'  # bold green   -> base01 *\r
+echo -ne  '\eP\e]4;3;#B58900\a'  # yellow       -> yellow\r
+echo -ne '\eP\e]4;11;#657B83\a'  # bold yellow  -> base00 *\r
+echo -ne  '\eP\e]4;4;#268BD2\a'  # blue         -> blue\r
+echo -ne '\eP\e]4;12;#839496\a'  # bold blue    -> base0 *\r
+echo -ne  '\eP\e]4;5;#D33682\a'  # magenta      -> magenta\r
+echo -ne '\eP\e]4;13;#6C71C4\a'  # bold magenta -> violet\r
+echo -ne  '\eP\e]4;6;#2AA198\a'  # cyan         -> cyan\r
+echo -ne '\eP\e]4;14;#93A1A1\a'  # bold cyan    -> base1 *\r
+echo -ne  '\eP\e]4;7;#EEE8D5\a'  # white        -> Base2\r
+echo -ne '\eP\e]4;15;#FDF6E3\a'  # bold white   -> Base3\r
index e817487fab2fbd5dec73548201cfc9bea288dab1..1c5fc15fd1fa787f83a2d0874092607dfccd0c4c 100644 (file)
@@ -1,4 +1,7 @@
-# ~/.config/git/config\r
+[filter "lfs"]
+       clean = git-lfs clean %f
+       smudge = git-lfs smudge %f
+       required = true
 [github]\r
        user = jannikz\r
 [alias]\r
@@ -31,6 +34,7 @@
        ec = config --global -e\r
        l = log --oneline --decorate\r
        lg = log --pretty=format:"%C(yellow)%h\\ %C(green)%ad%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=short --graph\r
+       lol = log --oneline --decorate --graph --all --first-parent
        last = log -1 HEAD\r
        ls = ls-files\r
        lt = tag -l\r
        remotes = remote -v\r
        root = rev-parse --show-toplevel\r
        cl = clone --recursive\r
-       
+
        # Show the diff between the latest commit and the current state\r
        d = !"git diff-index --quiet HEAD -- || clear; git --no-pager diff --patch-with-stat"\r
        # `git di $number` shows the diff between the state `$number` revisions ago and the current state\r
        di = !"d() { git diff --patch-with-stat HEAD~$1; }; git diff-index --quiet HEAD -- || clear; d"\r
-       
+
        # Find branches containing commit\r
        fb = "!f() { git branch -a --contains $1; }; f"\r
        # Find tags containing commit\r
        fc = "!f() { git log --pretty=format:'%C(yellow)%h  %Cblue%ad  %Creset%s%Cgreen  [%cn] %Cred%d' --decorate --date=short -S$1; }; f"\r
        # Find commits by commit message\r
        fm = "!f() { git log --pretty=format:'%C(yellow)%h  %Cblue%ad  %Creset%s%Cgreen  [%cn] %Cred%d' --decorate --date=short --grep=$1; }; f"\r
-       
+
        #Credit an author on the latest commit\r
        credit = "!f() { git commit --amend --author \"$1 <$2>\" -C HEAD; }; f"\r
        # List contributors with number of commits\r
        contributors = shortlog --summary --numbered\r
-       
+
        k = !gitk\r
        visual = !gitk\r
-       
+
        ctags = "!sh -c '[ -f .git/hooks/ctags ] || git init; .git/hooks/ctags' git-ctags"\r
        gtags = "!sh -c '[ -f .git/hooks/gtags ] || git init; .git/hooks/gtags' git-gtags"\r
        cscope = "!sh -c '[ -f .git/hooks/cscope ] || git init; .git/hooks/cscope' git-cscope"\r
 [init]\r
        templatedir = ~/.config/git/templates\r
 [core]\r
-       excludesfile = ~/.config/git/ignore\r
+       excludesfile =
        attributesFile = ~/.config/git/attributes\r
        editor = vim\r
-       eol = native
+#      eol = native
+       autocrlf = false
+[include]
+       path = ~/.config/git/config_local
 [filter "lfs"]
        clean = git-lfs clean -- %f
        smudge = git-lfs smudge -- %f
+       process = git-lfs filter-process
        required = true
-[include]
-       path = ~/.config/git/config_local
+[gui]
+       recentrepo = C:/Projects/repos/grundfos/jaz/genilog
index 5221ad5d523bf485e7444be8f61df9c8a6539a20..0d306afa0a4f5c5f9b08c00f6e26bdb087bd9a6d 100644 (file)
@@ -1,64 +1,64 @@
-# Ignore tags created by etags, ctags, gtags (GNU global) and cscope
-TAGS
-.TAGS
-!TAGS/
-tags
-.tags
-!tags/
-gtags.files
-GTAGS
-GRTAGS
-GPATH
-cscope.files
-cscope.out
-cscope.in.out
-cscope.po.out
-
-# Windows image file caches
-Thumbs.db
-ehthumbs.db
-
-# Folder config file
-Desktop.ini
-
-# Recycle Bin used on file shares
-$RECYCLE.BIN/
-
-# Windows Installer files
-*.cab
-*.msi
-*.msm
-*.msp
-
-# Windows shortcuts
-*.lnk
-
-
-# OSX
-*.DS_Store
-.AppleDouble
-.LSOverride
-
-# Icon must end with two \r
-Icon
-
-# Thumbnails
-._*
-
-# Files that might appear in the root of a volume
-.DocumentRevisions-V100
-.fseventsd
-.Spotlight-V100
-.TemporaryItems
-.Trashes
-.VolumeIcon.icns
-.com.apple.timemachine.donotpresent
-
-# Directories potentially created on remote AFP share
-.AppleDB
-.AppleDesktop
-Network Trash Folder
-Temporary Items
-.apdisk
-
-__pycache__
+# Ignore tags created by etags, ctags, gtags (GNU global) and cscope\r
+TAGS\r
+.TAGS\r
+!TAGS/\r
+tags\r
+.tags\r
+!tags/\r
+gtags.files\r
+GTAGS\r
+GRTAGS\r
+GPATH\r
+cscope.files\r
+cscope.out\r
+cscope.in.out\r
+cscope.po.out\r
+\r
+# Windows image file caches\r
+Thumbs.db\r
+ehthumbs.db\r
+\r
+# Folder config file\r
+Desktop.ini\r
+\r
+# Recycle Bin used on file shares\r
+$RECYCLE.BIN/\r
+\r
+# Windows Installer files\r
+*.cab\r
+*.msi\r
+*.msm\r
+*.msp\r
+\r
+# Windows shortcuts\r
+*.lnk\r
+\r
+\r
+# OSX\r
+*.DS_Store\r
+.AppleDouble\r
+.LSOverride\r
+\r
+# Icon must end with two \r\r
+Icon\r
+\r
+# Thumbnails\r
+._*\r
+\r
+# Files that might appear in the root of a volume\r
+.DocumentRevisions-V100\r
+.fseventsd\r
+.Spotlight-V100\r
+.TemporaryItems\r
+.Trashes\r
+.VolumeIcon.icns\r
+.com.apple.timemachine.donotpresent\r
+\r
+# Directories potentially created on remote AFP share\r
+.AppleDB\r
+.AppleDesktop\r
+Network Trash Folder\r
+Temporary Items\r
+.apdisk\r
+\r
+__pycache__\r
index f8767a93e1060682ac756adb5ddc02c9e7fc2a35..2dc4a393ae7f8563a6e0b83056250bf0a971c7d0 100644 (file)
@@ -1,9 +1,9 @@
-[core]
-       repositoryformatversion = 0
-       filemode = true
-       bare = false
-       logallrefupdates = true
-[branch "master"]
-       remote = origin
-       merge = refs/heads/master
-       rebase = true
+[core]\r
+       repositoryformatversion = 0\r
+       filemode = true\r
+       bare = false\r
+       logallrefupdates = true\r
+[branch "master"]\r
+       remote = origin\r
+       merge = refs/heads/master\r
+       rebase = true\r
index 42f95222e7b8645daf7d6168a2bbc3e281b4fdc3..d625a419d89ae6cdecf7635b1f157b11f0c4db7f 100755 (executable)
@@ -1,10 +1,10 @@
-#!/bin/sh
-set -e
-PATH="/usr/local/bin:$PATH"
-dir="`git rev-parse --git-dir`"
-trap 'rm -f "$dir/$$.cscope.out"' EXIT INT TERM
-git ls-files |\
-  grep -E '\.(c(pp)?|h)$' |\
-  awk '{print "\""$0"\""}' |\
-  cscope -R -b -i - -f "$dir/$$.cscope.out"
-mv "$dir/$$.cscope.out" "$dir/cscope.out"
+#!/bin/sh\r
+set -e\r
+PATH="/usr/local/bin:$PATH"\r
+dir="`git rev-parse --git-dir`"\r
+trap 'rm -f "$dir/$$.cscope.out"' EXIT INT TERM\r
+git ls-files |\\r
+  grep -E '\.(c(pp)?|h)$' |\\r
+  awk '{print "\""$0"\""}' |\\r
+  cscope -R -b -i - -f "$dir/$$.cscope.out"\r
+mv "$dir/$$.cscope.out" "$dir/cscope.out"\r
index d51e9afa79f22de5db30e280b8d82b6fafcf2bf6..774d101b0913aae24526ae740b528312892679aa 100755 (executable)
@@ -1,8 +1,8 @@
-#!/bin/sh
-set -e
-PATH="/usr/local/bin:$PATH"
-dir="`git rev-parse --git-dir`"
-trap 'rm -f "$dir/$$.tags"' EXIT INT TERM
-git ls-files | \
-  ctags --tag-relative -L - -f"$dir/$$.tags" --languages=-javascript,sql
-mv "$dir/$$.tags" "$dir/tags"
+#!/bin/sh\r
+set -e\r
+PATH="/usr/local/bin:$PATH"\r
+dir="`git rev-parse --git-dir`"\r
+trap 'rm -f "$dir/$$.tags"' EXIT INT TERM\r
+git ls-files | \\r
+  ctags --tag-relative -L - -f"$dir/$$.tags" --languages=-javascript,sql\r
+mv "$dir/$$.tags" "$dir/tags"\r
index d30547d3b7c4c8dca0f86ea6775d47d9731320a2..3e8e848dfb408c8aab3da2dd2da612a92affbf94 100755 (executable)
@@ -1,9 +1,9 @@
-#! /bin/sh
-set -e
-PATH="/usr/local/bin:$PATH"
-dir="`git rev-parse --git-dir`"
-trap 'rm -rf "$dir/$$.gtags/"' EXIT INT TERM
-mkdir "$dir/$$.gtags"
-git ls-files | \
-  gtags --file=- --skip-unreadable "$dir/$$.gtags"
-mv "$dir/$$.gtags"/* "$dir/.."
+#! /bin/sh\r
+set -e\r
+PATH="/usr/local/bin:$PATH"\r
+dir="`git rev-parse --git-dir`"\r
+trap 'rm -rf "$dir/$$.gtags/"' EXIT INT TERM\r
+mkdir "$dir/$$.gtags"\r
+git ls-files | \\r
+  gtags --file=- --skip-unreadable "$dir/$$.gtags"\r
+mv "$dir/$$.gtags"/* "$dir/.."\r
index dbe2120ea96e95e860d053d3f4cd485b328661a5..be09ac783d47095ae67e289be524071bb0b43f09 100755 (executable)
@@ -1,7 +1,7 @@
-#!/bin/sh
-.git/hooks/ctags >/dev/null 2>&1 &
-.git/hooks/gtags >/dev/null 2>&1 &
-.git/hooks/cscope >/dev/null 2>&1 &
-
-
-
+#!/bin/sh\r
+.git/hooks/ctags >/dev/null 2>&1 &\r
+.git/hooks/gtags >/dev/null 2>&1 &\r
+.git/hooks/cscope >/dev/null 2>&1 &\r
+\r
+\r
+\r
index f6c2774cf8ed2253d7dbb44fccb54460b0d805ff..ca24a8811b73dd515294a8062bf01811a648f753 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
-.git/hooks/ctags >/dev/null 2>&1 &
-.git/hooks/gtags >/dev/null 2>&1 &
-.git/hooks/cscope >/dev/null 2>&1 &
+#!/bin/sh\r
+.git/hooks/ctags >/dev/null 2>&1 &\r
+.git/hooks/gtags >/dev/null 2>&1 &\r
+.git/hooks/cscope >/dev/null 2>&1 &\r
index f6c2774cf8ed2253d7dbb44fccb54460b0d805ff..ca24a8811b73dd515294a8062bf01811a648f753 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
-.git/hooks/ctags >/dev/null 2>&1 &
-.git/hooks/gtags >/dev/null 2>&1 &
-.git/hooks/cscope >/dev/null 2>&1 &
+#!/bin/sh\r
+.git/hooks/ctags >/dev/null 2>&1 &\r
+.git/hooks/gtags >/dev/null 2>&1 &\r
+.git/hooks/cscope >/dev/null 2>&1 &\r
index f6c2774cf8ed2253d7dbb44fccb54460b0d805ff..ca24a8811b73dd515294a8062bf01811a648f753 100644 (file)
@@ -1,4 +1,4 @@
-#!/bin/sh
-.git/hooks/ctags >/dev/null 2>&1 &
-.git/hooks/gtags >/dev/null 2>&1 &
-.git/hooks/cscope >/dev/null 2>&1 &
+#!/bin/sh\r
+.git/hooks/ctags >/dev/null 2>&1 &\r
+.git/hooks/gtags >/dev/null 2>&1 &\r
+.git/hooks/cscope >/dev/null 2>&1 &\r
index fe8972dd90fd742165c2025de8e8e007fe3e36a6..aed59b96aee3744a0baee98fc3dcc93fcdb93818 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
-case "$1" in
-  rebase) exec .git/hooks/post-merge ;;
-esac
+#!/bin/sh\r
+case "$1" in\r
+  rebase) exec .git/hooks/post-merge ;;\r
+esac\r
index 6ffcf4a62b2f8bcc9c68dfb524464e79c0416f8a..1561265d0dbff0786981bb626552e062756f8c1e 100644 (file)
@@ -34,8 +34,10 @@ export LESS=-eFRX
 \r
 #export GTEST_DIR='c:/googletest-release-1.7.0'\r
 #export GTEST_DIR='c:/googletest-release-1.8.0'\r
-export CPPUNITDIR='c:/cppunit-1.12.1'\r
+#export CPPUNITDIR='c:/cppunit-1.12.1'\r
 #export CPPUNITDIR='c:/cppunit-1.13.2'\r
+export CPPUNITDIR_2013='c:/programs/cppunit_2013'\r
+\r
 export VIRTUALENVWRAPPER_PYTHON=/mingw64/bin/python3\r
 \r
 #export XDG_CONFIG_HOME = ~/.config/\r
index 5bdc46bf1591c200e5a9df3f4b1ca46c7af460db..9e55a9cde59d23f5cdd8eb7b970ba206a189ef7d 100644 (file)
@@ -1,13 +1,13 @@
-# Install git completion
-if [ ! -f "${HOME}/.cache/bash/git-completion.bash" ]; then
-  URL="https://raw.githubusercontent.com/git/git/master/contrib/completion"
-  mkdir -p ${HOME}/.cache/bash > /dev/null 2>&1
-  curl "${URL}/git-completion.bash" -L -s -o "${HOME}/.cache/bash/git-completion.bash"
-  curl "${URL}/git-prompt.sh" -L -s -o "${HOME}/.cache/bash/git-prompt.sh"
-fi
-
-# Install fzf
-if [ ! -f "${HOME}/.cache/fzf/install" ]; then
-  git clone --depth 1 https://github.com/junegunn/fzf.git $HOME/.cache/fzf
-  $HOME/.cache/fzf/install
-fi
+# Install git completion\r
+if [ ! -f "${HOME}/.cache/bash/git-completion.bash" ]; then\r
+  URL="https://raw.githubusercontent.com/git/git/master/contrib/completion"\r
+  mkdir -p ${HOME}/.cache/bash > /dev/null 2>&1\r
+  curl "${URL}/git-completion.bash" -L -s -o "${HOME}/.cache/bash/git-completion.bash"\r
+  curl "${URL}/git-prompt.sh" -L -s -o "${HOME}/.cache/bash/git-prompt.sh"\r
+fi\r
+\r
+# Install fzf\r
+if [ ! -f "${HOME}/.cache/fzf/install" ]; then\r
+  git clone --depth 1 https://github.com/junegunn/fzf.git $HOME/.cache/fzf\r
+  $HOME/.cache/fzf/install\r
+fi\r
index 28632854df2f43b9b2760a1d2e4460f94978df65..b2f1c9dd7a9a246fca54e2240768c631a36db2b0 100644 (file)
@@ -1,40 +1,42 @@
-# Set XDG directory defaults
-#export XDG_DATA_DIRS=/usr/share/
-#export XDG_CONFIG_DIRS=/etc/xdg/
-
-PATH=.:${HOME}/bin:${PATH}
-
-# Set PATH so it includes user's private bin if it exists
-if [ -d "${HOME}/.local/bin" ] ; then
- PATH=${HOME}/.local/bin:${PATH}
-fi
-
-# Set MANPATH so it includes users' private man if it exists
-if [ -d "${HOME}/.local/share/man" ]; then
-  MANPATH="${HOME}/.local/share/man:${MANPATH}"
-fi
-
-# Set INFOPATH so it includes users' private info if it exists
-if [ -d "${HOME}/.local/share/info" ]; then
-  INFOPATH="${HOME}/.local/share/info:${INFOPATH}"
-fi
-
-# Set PATH to temporary folders
-export TMPDIR="${HOME}/.tmp"
-export TEMPDIR="$TMPDIR"
-export TEMP="$TMPDIR"
-export TMP="$TMPDIR"
-mkdir -m700 "$TMPDIR" > /dev/null 2>&1
-
-# Set PATH to PREFIX folders
-export PREFIX="${HOME}/.local/"
-
-# Add local libraries to libpath
-# LD_LIBRARY_PATH="${PREFIX}/lib:${LD_LIBRARY_PATH}"
-
-# Setup some the location environment variable.
-#export MYVIMRC="$HOME/.config/vim/vimrc"
-export INPUTRC="$HOME/.inputrc"
-export HISTFILE="$HOME/.local/share/bash/history";
-
-
+# Set XDG directory defaults\r
+#export XDG_DATA_DIRS=/usr/share/\r
+#export XDG_CONFIG_DIRS=/etc/xdg/\r
+\r
+PATH=.:${HOME}/bin:${PATH}\r
+#PATH=/c/ProgramData/chocolatey/bin:${PATH}\r
+PATH=${HOME}/.gem/ruby/2.3.0/gems/asciidoctor-1.5.6.1/bin:${PATH}\r
+\r
+# Set PATH so it includes user's private bin if it exists\r
+if [ -d "${HOME}/.local/bin" ] ; then\r
+ PATH=${HOME}/.local/bin:${PATH}\r
+fi\r
+\r
+# Set MANPATH so it includes users' private man if it exists\r
+if [ -d "${HOME}/.local/share/man" ]; then\r
+  MANPATH="${HOME}/.local/share/man:${MANPATH}"\r
+fi\r
+\r
+# Set INFOPATH so it includes users' private info if it exists\r
+if [ -d "${HOME}/.local/share/info" ]; then\r
+  INFOPATH="${HOME}/.local/share/info:${INFOPATH}"\r
+fi\r
+\r
+# Set PATH to temporary folders\r
+export TMPDIR="${HOME}/.tmp"\r
+export TEMPDIR="$TMPDIR"\r
+export TEMP="$TMPDIR"\r
+export TMP="$TMPDIR"\r
+mkdir -m700 "$TMPDIR" > /dev/null 2>&1\r
+\r
+# Set PATH to PREFIX folders\r
+export PREFIX="${HOME}/.local/"\r
+\r
+# Add local libraries to libpath\r
+# LD_LIBRARY_PATH="${PREFIX}/lib:${LD_LIBRARY_PATH}"\r
+\r
+# Setup some the location environment variable.\r
+#export MYVIMRC="$HOME/.config/vim/vimrc"\r
+export INPUTRC="$HOME/.inputrc"\r
+export HISTFILE="$HOME/.local/share/bash/history";\r
+\r
+\r
index 0d19da4e4909b27f1248076c67611cb72259f56b..09593a6dcaa06eb8aea935e6cdd2613beef1e77c 100644 (file)
@@ -1,15 +1,15 @@
-# This file is written by xdg-user-dirs-update
-# If you want to change or add directories, just edit the line you're
-# interested in. All local changes will be retained on the next run
-# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
-# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
-# absolute path. No other format is supported.
-# 
-XDG_DESKTOP_DIR="$HOME/Desktop"
-XDG_DOWNLOAD_DIR="$HOME/Downloads"
-XDG_TEMPLATES_DIR="$HOME/Templates"
-XDG_PUBLICSHARE_DIR="$HOME/Public"
-XDG_DOCUMENTS_DIR="$HOME/Documents"
-XDG_MUSIC_DIR="$HOME/Music"
-XDG_PICTURES_DIR="$HOME/Pictures"
-XDG_VIDEOS_DIR="$HOME/Videos"
+# This file is written by xdg-user-dirs-update\r
+# If you want to change or add directories, just edit the line you're\r
+# interested in. All local changes will be retained on the next run\r
+# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped\r
+# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an\r
+# absolute path. No other format is supported.\r
+# \r
+XDG_DESKTOP_DIR="$HOME/Desktop"\r
+XDG_DOWNLOAD_DIR="$HOME/Downloads"\r
+XDG_TEMPLATES_DIR="$HOME/Templates"\r
+XDG_PUBLICSHARE_DIR="$HOME/Public"\r
+XDG_DOCUMENTS_DIR="$HOME/Documents"\r
+XDG_MUSIC_DIR="$HOME/Music"\r
+XDG_PICTURES_DIR="$HOME/Pictures"\r
+XDG_VIDEOS_DIR="$HOME/Videos"\r
diff --git a/.cshrc b/.cshrc
index 9a21b6d1c75f9545a49f2e1f5c99e7e60600b828..d62cb82f8298d9a7ff073ecb2607bf5d2941a9a8 100644 (file)
--- a/.cshrc
+++ b/.cshrc
@@ -1,12 +1,12 @@
-# .cshrc: executed by C shells on startup
-
-# If this is login or command shell then change to a sane shell
-if ($SHELL != /bin/bash) then
-  setenv SHELL /bin/bash
-  if ($?command) then
-    exec /bin/bash -c "$command"
-  else
-    exec /bin/bash
-  endif
-endif
-
+# .cshrc: executed by C shells on startup\r
+\r
+# If this is login or command shell then change to a sane shell\r
+if ($SHELL != /bin/bash) then\r
+  setenv SHELL /bin/bash\r
+  if ($?command) then\r
+    exec /bin/bash -c "$command"\r
+  else\r
+    exec /bin/bash\r
+  endif\r
+endif\r
+\r
index f32324a8a09526e1708d89076931c1fbc12d42f6..ed067605fcbcd8dc51d93610d492f9d37c6c5c62 100644 (file)
-# Exact Solarized Dark color theme for the color GNU ls utility.
-# Designed for dircolors (GNU coreutils) 5.97
-#
-# This simple theme was simultaneously designed for these terminal color schemes:
-# - Solarized dark  (best)
-# - Solarized light
-# - default dark
-# - default light
-# with a slight optimization for Solarized Dark.
-#
-# How the colors were selected:
-# - Terminal emulators often have an option typically enabled by default that makes
-#   bold a different color.  It is important to leave this option enabled so that
-#   you can access the entire 16-color Solarized palette, and not just 8 colors.
-# - We favor universality over a greater number of colors.  So we limit the number
-#   of colors so that this theme will work out of the box in all terminals,
-#   Solarized or not, dark or light.
-# - We choose to have the following category of files:
-#   NORMAL & FILE, DIR, LINK, EXEC and
-#   editable text including source, unimportant text, binary docs & multimedia source
-#   files, viewable multimedia, archived/compressed, and unimportant non-text
-# - For uniqueness, we stay away from the Solarized foreground colors are -- either
-#   base00 (brightyellow) or base0 (brighblue).  However, they can be used if
-#   you know what the bg/fg colors of your terminal are, in order to optimize the display.
-# - 3 different options are provided: universal, solarized dark, and solarized light.
-#   The only difference between the universal scheme and one that's optimized for
-#   dark/light is the color of "unimportant" files, which should blend more with the
-#   background
-# - We note that blue is the hardest color to see on dark bg and yellow is the hardest
-#   color to see on light bg (with blue being particularly bad).  So we choose yellow
-#   for multimedia files which are usually accessed in a GUI folder browser anyway.
-#   And blue is kept for custom use of this scheme's user.
-# - See table below to see the assignments.
-
-
-# Insatllation instructions:
-# This file goes in the /etc directory, and must be world readable.
-# You can copy this file to .dir_colors in your $HOME directory to override
-# the system defaults.
-
-# COLOR needs one of these arguments: 'tty' colorizes output to ttys, but not
-# pipes. 'all' adds color characters to all output. 'none' shuts colorization
-# off.
-COLOR tty
-
-# Below, there should be one TERM entry for each termtype that is colorizable
-TERM ansi
-TERM color_xterm
-TERM color-xterm
-TERM con132x25
-TERM con132x30
-TERM con132x43
-TERM con132x60
-TERM con80x25
-TERM con80x28
-TERM con80x30
-TERM con80x43
-TERM con80x50
-TERM con80x60
-TERM cons25
-TERM console
-TERM cygwin
-TERM dtterm
-TERM Eterm
-TERM eterm-color
-TERM gnome
-TERM gnome-256color
-TERM jfbterm
-TERM konsole
-TERM kterm
-TERM linux
-TERM linux-c
-TERM mach-color
-TERM mlterm
-TERM nxterm
-TERM putty
-TERM rxvt
-TERM rxvt-256color
-TERM rxvt-cygwin
-TERM rxvt-cygwin-native
-TERM rxvt-unicode
-TERM rxvt-unicode256
-TERM rxvt-unicode-256color
-TERM screen
-TERM screen-256color
-TERM screen-256color-bce
-TERM screen-bce
-TERM screen.linux
-TERM screen-w
-TERM vt100
-TERM xterm
-TERM xterm-16color
-TERM xterm-256color
-TERM xterm-88color
-TERM xterm-color
-TERM xterm-debian
-
-# EIGHTBIT, followed by '1' for on, '0' for off. (8-bit output)
-EIGHTBIT 1
-
-#############################################################################
-# Below are the color init strings for the basic file types. A color init
-# string consists of one or more of the following numeric codes:
-#
-# Attribute codes: 
-#   00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
-# Text color codes:
-#   30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
-# Background color codes:
-#   40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
-#
-# NOTES:
-# - See http://www.oreilly.com/catalog/wdnut/excerpt/color_names.html
-# - Color combinations
-#   ANSI Color code       Solarized  Notes                Universal             SolDark              SolLight
-#   ~~~~~~~~~~~~~~~       ~~~~~~~~~  ~~~~~                ~~~~~~~~~             ~~~~~~~              ~~~~~~~~
-#   00    none                                            NORMAL, FILE          <SAME>               <SAME>
-#   30    black           base02                                                
-#   01;30 bright black    base03     bg of SolDark                                                                         
-#   31    red             red                             docs & mm src         <SAME>               <SAME>
-#   01;31 bright red      orange                          EXEC                  <SAME>               <SAME>
-#   32    green           green                           editable text         <SAME>               <SAME>
-#   01;32 bright green    base01                          unimportant text      <SAME>
-#   33    yellow          yellow     unclear in light bg  multimedia            <SAME>               <SAME>
-#   01;33 bright yellow   base00     fg of SolLight                             unimportant non-text
-#   34    blue            blue       unclear in dark bg   user customized       <SAME>               <SAME>
-#   01;34 bright blue     base0      fg in SolDark                                                   unimportant text
-#   35    magenta         magenta                         LINK                  <SAME>               <SAME>
-#   01;35 bright magenta  violet                          archive/compressed    <SAME>               <SAME>
-#   36    cyan            cyan                            DIR                   <SAME>               <SAME>
-#   01;36 bright cyan     base1                           unimportant non-text                       <SAME>
-#   37    white           base2                                                                      
-#   01;37 bright white    base3      bg in SolLight                                                                        
-#   05;37;41                         unclear in Putty dark
-
-
-### By file type
-
-# global default
-NORMAL 00
-# normal file
-FILE 00
-# directory
-DIR 36
-# symbolic link
-LINK 35
-
-# pipe, socket, block device, character device (blue bg)
-FIFO 30;44
-SOCK 35;44
-DOOR 35;44 # Solaris 2.5 and later
-BLK  33;44
-CHR  37;44
-
-
-#############################################################################
-### By file attributes
-
-# Orphaned symlinks (blinking white on red)
-# Blink may or may not work (works on iTerm dark or light, and Putty dark)
-ORPHAN  05;37;41
-# ... and the files that orphaned symlinks point to (blinking white on red)
-MISSING 05;37;41
-
-# files with execute permission
-EXEC 01;31  # Unix
-.cmd 01;31  # Win
-.exe 01;31  # Win
-.com 01;31  # Win
-.bat 01;31  # Win
-.reg 01;31  # Win
-.app 01;31  # OSX
-
-#############################################################################
-### By extension
-
-# List any file extensions like '.gz' or '.tar' that you would like ls
-# to colorize below. Put the extension, a space, and the color init string.
-# (and any comments you want to add after a '#')
-
-### Text formats
-
-# Text that we can edit with a regular editor
-.txt 32
-.org 32
-.md 32
-.mkd 32
-
-# Source text
-.h 32
-.c 32
-.C 32
-.cc 32
-.cxx 32
-.objc 32
-.sh 32
-.csh 32
-.zsh 32
-.el 32
-.vim 32
-.java 32
-.pl 32
-.pm 32
-.py 32
-.rb 32
-.hs 32
-.php 32
-.htm 32
-.html 32
-.shtml 32
-.xml 32
-.rdf 32
-.css 32
-.js 32
-.man 32
-.0 32
-.1 32
-.2 32
-.3 32
-.4 32
-.5 32
-.6 32
-.7 32
-.8 32
-.9 32
-.l 32
-.n 32
-.p 32
-.pod 32
-.tex 32
-
-### Multimedia formats
-
-# Image
-.bmp 33
-.cgm 33
-.dl 33
-.dvi 33
-.emf 33
-.eps 33
-.gif 33
-.jpeg 33
-.jpg 33
-.JPG 33
-.mng 33
-.pbm 33
-.pcx 33
-.pdf 33
-.pgm 33
-.png 33
-.ppm 33
-.pps 33
-.ppsx 33
-.ps 33
-.svg 33
-.svgz 33
-.tga 33
-.tif 33
-.tiff 33
-.xbm 33
-.xcf 33
-.xpm 33
-.xwd 33
-.xwd 33
-.yuv 33
-
-# Audio
-.aac 33
-.au  33
-.flac 33
-.mid 33
-.midi 33
-.mka 33
-.mp3 33
-.mpa 33
-.mpeg 33
-.mpg 33
-.ogg  33
-.ra 33
-.wav 33
-
-# Video
-.anx 33
-.asf 33
-.avi 33
-.axv 33
-.flc 33
-.fli 33
-.flv 33
-.gl 33
-.m2v 33
-.m4v 33
-.mkv 33
-.mov 33
-.mp4 33
-.mp4v 33
-.mpeg 33
-.mpg 33
-.nuv 33
-.ogm 33
-.ogv 33
-.ogx 33
-.qt 33
-.rm 33
-.rmvb 33
-.swf 33
-.vob 33
-.wmv 33
-
-### Misc
-
-# Binary document formats and multimedia source
-.doc 31
-.docx 31
-.rtf 31
-.dot 31
-.dotx 31
-.xls 31
-.xlsx 31
-.ppt 31
-.pptx 31
-.fla 31
-.psd 31
-
-# Archives, compressed
-.7z   1;35
-.apk  1;35
-.arj  1;35
-.bin  1;35
-.bz   1;35
-.bz2  1;35
-.cab  1;35  # Win
-.deb  1;35
-.dmg  1;35  # OSX
-.gem  1;35
-.gz   1;35
-.iso  1;35
-.jar  1;35
-.msi  1;35  # Win
-.rar  1;35
-.rpm  1;35
-.tar  1;35
-.tbz  1;35
-.tbz2 1;35
-.tgz  1;35
-.tx   1;35
-.war  1;35
-.xpi  1;35
-.xz   1;35
-.z    1;35
-.Z    1;35
-.zip  1;35
-
-# For testing
-.ANSI-30-black 30
-.ANSI-01;30-brblack 01;30
-.ANSI-31-red 31
-.ANSI-01;31-brred 01;31
-.ANSI-32-green 32
-.ANSI-01;32-brgreen 01;32
-.ANSI-33-yellow 33
-.ANSI-01;33-bryellow 01;33
-.ANSI-34-blue 34
-.ANSI-01;34-brblue 01;34
-.ANSI-35-magenta 35
-.ANSI-01;35-brmagenta 01;35
-.ANSI-36-cyan 36
-.ANSI-01;36-brcyan 01;36
-.ANSI-37-white 37
-.ANSI-01;37-brwhite 01;37
-
-#############################################################################
-# Your customizations
-
-# Unimportant text files
-# For universal scheme, use brightgreen 01;32
-# For optimal on light bg (but too prominent on dark bg), use white 01;34
-.log 01;32
-*~ 01;32
-*# 01;32
-#.log 01;34
-#*~ 01;34
-#*# 01;34
-
-# Unimportant non-text files
-# For universal scheme, use brightcyan 01;36
-# For optimal on dark bg (but too prominent on light bg), change to 01;33
-#.bak 01;36
-#.BAK 01;36
-#.old 01;36
-#.OLD 01;36
-#.org_archive 01;36
-#.off 01;36
-#.OFF 01;36
-#.dist 01;36
-#.DIST 01;36
-#.orig 01;36
-#.ORIG 01;36
-#.swp 01;36
-#.swo 01;36
-#*,v 01;36
-.bak 01;33
-.BAK 01;33
-.old 01;33
-.OLD 01;33
-.org_archive 01;33
-.off 01;33
-.OFF 01;33
-.dist 01;33
-.DIST 01;33
-.orig 01;33
-.ORIG 01;33
-.swp 01;33
-.swo 01;33
-*,v 01;33
-
-# The brightmagenta (Solarized: purple) color is free for you to use for your
-# custom file type
-.gpg 34
-.gpg 34
-.pgp 34
-.asc 34
-.3des 34
-.aes 34
-.enc 34
+# Exact Solarized Dark color theme for the color GNU ls utility.\r
+# Designed for dircolors (GNU coreutils) 5.97\r
+#\r
+# This simple theme was simultaneously designed for these terminal color schemes:\r
+# - Solarized dark  (best)\r
+# - Solarized light\r
+# - default dark\r
+# - default light\r
+# with a slight optimization for Solarized Dark.\r
+#\r
+# How the colors were selected:\r
+# - Terminal emulators often have an option typically enabled by default that makes\r
+#   bold a different color.  It is important to leave this option enabled so that\r
+#   you can access the entire 16-color Solarized palette, and not just 8 colors.\r
+# - We favor universality over a greater number of colors.  So we limit the number\r
+#   of colors so that this theme will work out of the box in all terminals,\r
+#   Solarized or not, dark or light.\r
+# - We choose to have the following category of files:\r
+#   NORMAL & FILE, DIR, LINK, EXEC and\r
+#   editable text including source, unimportant text, binary docs & multimedia source\r
+#   files, viewable multimedia, archived/compressed, and unimportant non-text\r
+# - For uniqueness, we stay away from the Solarized foreground colors are -- either\r
+#   base00 (brightyellow) or base0 (brighblue).  However, they can be used if\r
+#   you know what the bg/fg colors of your terminal are, in order to optimize the display.\r
+# - 3 different options are provided: universal, solarized dark, and solarized light.\r
+#   The only difference between the universal scheme and one that's optimized for\r
+#   dark/light is the color of "unimportant" files, which should blend more with the\r
+#   background\r
+# - We note that blue is the hardest color to see on dark bg and yellow is the hardest\r
+#   color to see on light bg (with blue being particularly bad).  So we choose yellow\r
+#   for multimedia files which are usually accessed in a GUI folder browser anyway.\r
+#   And blue is kept for custom use of this scheme's user.\r
+# - See table below to see the assignments.\r
+\r
+\r
+# Insatllation instructions:\r
+# This file goes in the /etc directory, and must be world readable.\r
+# You can copy this file to .dir_colors in your $HOME directory to override\r
+# the system defaults.\r
+\r
+# COLOR needs one of these arguments: 'tty' colorizes output to ttys, but not\r
+# pipes. 'all' adds color characters to all output. 'none' shuts colorization\r
+# off.\r
+COLOR tty\r
+\r
+# Below, there should be one TERM entry for each termtype that is colorizable\r
+TERM ansi\r
+TERM color_xterm\r
+TERM color-xterm\r
+TERM con132x25\r
+TERM con132x30\r
+TERM con132x43\r
+TERM con132x60\r
+TERM con80x25\r
+TERM con80x28\r
+TERM con80x30\r
+TERM con80x43\r
+TERM con80x50\r
+TERM con80x60\r
+TERM cons25\r
+TERM console\r
+TERM cygwin\r
+TERM dtterm\r
+TERM Eterm\r
+TERM eterm-color\r
+TERM gnome\r
+TERM gnome-256color\r
+TERM jfbterm\r
+TERM konsole\r
+TERM kterm\r
+TERM linux\r
+TERM linux-c\r
+TERM mach-color\r
+TERM mlterm\r
+TERM nxterm\r
+TERM putty\r
+TERM rxvt\r
+TERM rxvt-256color\r
+TERM rxvt-cygwin\r
+TERM rxvt-cygwin-native\r
+TERM rxvt-unicode\r
+TERM rxvt-unicode256\r
+TERM rxvt-unicode-256color\r
+TERM screen\r
+TERM screen-256color\r
+TERM screen-256color-bce\r
+TERM screen-bce\r
+TERM screen.linux\r
+TERM screen-w\r
+TERM vt100\r
+TERM xterm\r
+TERM xterm-16color\r
+TERM xterm-256color\r
+TERM xterm-88color\r
+TERM xterm-color\r
+TERM xterm-debian\r
+\r
+# EIGHTBIT, followed by '1' for on, '0' for off. (8-bit output)\r
+EIGHTBIT 1\r
+\r
+#############################################################################\r
+# Below are the color init strings for the basic file types. A color init\r
+# string consists of one or more of the following numeric codes:\r
+#\r
+# Attribute codes: \r
+#   00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed\r
+# Text color codes:\r
+#   30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white\r
+# Background color codes:\r
+#   40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white\r
+#\r
+# NOTES:\r
+# - See http://www.oreilly.com/catalog/wdnut/excerpt/color_names.html\r
+# - Color combinations\r
+#   ANSI Color code       Solarized  Notes                Universal             SolDark              SolLight\r
+#   ~~~~~~~~~~~~~~~       ~~~~~~~~~  ~~~~~                ~~~~~~~~~             ~~~~~~~              ~~~~~~~~\r
+#   00    none                                            NORMAL, FILE          <SAME>               <SAME>\r
+#   30    black           base02                                                \r
+#   01;30 bright black    base03     bg of SolDark                                                                         \r
+#   31    red             red                             docs & mm src         <SAME>               <SAME>\r
+#   01;31 bright red      orange                          EXEC                  <SAME>               <SAME>\r
+#   32    green           green                           editable text         <SAME>               <SAME>\r
+#   01;32 bright green    base01                          unimportant text      <SAME>\r
+#   33    yellow          yellow     unclear in light bg  multimedia            <SAME>               <SAME>\r
+#   01;33 bright yellow   base00     fg of SolLight                             unimportant non-text\r
+#   34    blue            blue       unclear in dark bg   user customized       <SAME>               <SAME>\r
+#   01;34 bright blue     base0      fg in SolDark                                                   unimportant text\r
+#   35    magenta         magenta                         LINK                  <SAME>               <SAME>\r
+#   01;35 bright magenta  violet                          archive/compressed    <SAME>               <SAME>\r
+#   36    cyan            cyan                            DIR                   <SAME>               <SAME>\r
+#   01;36 bright cyan     base1                           unimportant non-text                       <SAME>\r
+#   37    white           base2                                                                      \r
+#   01;37 bright white    base3      bg in SolLight                                                                        \r
+#   05;37;41                         unclear in Putty dark\r
+\r
+\r
+### By file type\r
+\r
+# global default\r
+NORMAL 00\r
+# normal file\r
+FILE 00\r
+# directory\r
+DIR 36\r
+# symbolic link\r
+LINK 35\r
+\r
+# pipe, socket, block device, character device (blue bg)\r
+FIFO 30;44\r
+SOCK 35;44\r
+DOOR 35;44 # Solaris 2.5 and later\r
+BLK  33;44\r
+CHR  37;44\r
+\r
+\r
+#############################################################################\r
+### By file attributes\r
+\r
+# Orphaned symlinks (blinking white on red)\r
+# Blink may or may not work (works on iTerm dark or light, and Putty dark)\r
+ORPHAN  05;37;41\r
+# ... and the files that orphaned symlinks point to (blinking white on red)\r
+MISSING 05;37;41\r
+\r
+# files with execute permission\r
+EXEC 01;31  # Unix\r
+.cmd 01;31  # Win\r
+.exe 01;31  # Win\r
+.com 01;31  # Win\r
+.bat 01;31  # Win\r
+.reg 01;31  # Win\r
+.app 01;31  # OSX\r
+\r
+#############################################################################\r
+### By extension\r
+\r
+# List any file extensions like '.gz' or '.tar' that you would like ls\r
+# to colorize below. Put the extension, a space, and the color init string.\r
+# (and any comments you want to add after a '#')\r
+\r
+### Text formats\r
+\r
+# Text that we can edit with a regular editor\r
+.txt 32\r
+.org 32\r
+.md 32\r
+.mkd 32\r
+\r
+# Source text\r
+.h 32\r
+.c 32\r
+.C 32\r
+.cc 32\r
+.cxx 32\r
+.objc 32\r
+.sh 32\r
+.csh 32\r
+.zsh 32\r
+.el 32\r
+.vim 32\r
+.java 32\r
+.pl 32\r
+.pm 32\r
+.py 32\r
+.rb 32\r
+.hs 32\r
+.php 32\r
+.htm 32\r
+.html 32\r
+.shtml 32\r
+.xml 32\r
+.rdf 32\r
+.css 32\r
+.js 32\r
+.man 32\r
+.0 32\r
+.1 32\r
+.2 32\r
+.3 32\r
+.4 32\r
+.5 32\r
+.6 32\r
+.7 32\r
+.8 32\r
+.9 32\r
+.l 32\r
+.n 32\r
+.p 32\r
+.pod 32\r
+.tex 32\r
+\r
+### Multimedia formats\r
+\r
+# Image\r
+.bmp 33\r
+.cgm 33\r
+.dl 33\r
+.dvi 33\r
+.emf 33\r
+.eps 33\r
+.gif 33\r
+.jpeg 33\r
+.jpg 33\r
+.JPG 33\r
+.mng 33\r
+.pbm 33\r
+.pcx 33\r
+.pdf 33\r
+.pgm 33\r
+.png 33\r
+.ppm 33\r
+.pps 33\r
+.ppsx 33\r
+.ps 33\r
+.svg 33\r
+.svgz 33\r
+.tga 33\r
+.tif 33\r
+.tiff 33\r
+.xbm 33\r
+.xcf 33\r
+.xpm 33\r
+.xwd 33\r
+.xwd 33\r
+.yuv 33\r
+\r
+# Audio\r
+.aac 33\r
+.au  33\r
+.flac 33\r
+.mid 33\r
+.midi 33\r
+.mka 33\r
+.mp3 33\r
+.mpa 33\r
+.mpeg 33\r
+.mpg 33\r
+.ogg  33\r
+.ra 33\r
+.wav 33\r
+\r
+# Video\r
+.anx 33\r
+.asf 33\r
+.avi 33\r
+.axv 33\r
+.flc 33\r
+.fli 33\r
+.flv 33\r
+.gl 33\r
+.m2v 33\r
+.m4v 33\r
+.mkv 33\r
+.mov 33\r
+.mp4 33\r
+.mp4v 33\r
+.mpeg 33\r
+.mpg 33\r
+.nuv 33\r
+.ogm 33\r
+.ogv 33\r
+.ogx 33\r
+.qt 33\r
+.rm 33\r
+.rmvb 33\r
+.swf 33\r
+.vob 33\r
+.wmv 33\r
+\r
+### Misc\r
+\r
+# Binary document formats and multimedia source\r
+.doc 31\r
+.docx 31\r
+.rtf 31\r
+.dot 31\r
+.dotx 31\r
+.xls 31\r
+.xlsx 31\r
+.ppt 31\r
+.pptx 31\r
+.fla 31\r
+.psd 31\r
+\r
+# Archives, compressed\r
+.7z   1;35\r
+.apk  1;35\r
+.arj  1;35\r
+.bin  1;35\r
+.bz   1;35\r
+.bz2  1;35\r
+.cab  1;35  # Win\r
+.deb  1;35\r
+.dmg  1;35  # OSX\r
+.gem  1;35\r
+.gz   1;35\r
+.iso  1;35\r
+.jar  1;35\r
+.msi  1;35  # Win\r
+.rar  1;35\r
+.rpm  1;35\r
+.tar  1;35\r
+.tbz  1;35\r
+.tbz2 1;35\r
+.tgz  1;35\r
+.tx   1;35\r
+.war  1;35\r
+.xpi  1;35\r
+.xz   1;35\r
+.z    1;35\r
+.Z    1;35\r
+.zip  1;35\r
+\r
+# For testing\r
+.ANSI-30-black 30\r
+.ANSI-01;30-brblack 01;30\r
+.ANSI-31-red 31\r
+.ANSI-01;31-brred 01;31\r
+.ANSI-32-green 32\r
+.ANSI-01;32-brgreen 01;32\r
+.ANSI-33-yellow 33\r
+.ANSI-01;33-bryellow 01;33\r
+.ANSI-34-blue 34\r
+.ANSI-01;34-brblue 01;34\r
+.ANSI-35-magenta 35\r
+.ANSI-01;35-brmagenta 01;35\r
+.ANSI-36-cyan 36\r
+.ANSI-01;36-brcyan 01;36\r
+.ANSI-37-white 37\r
+.ANSI-01;37-brwhite 01;37\r
+\r
+#############################################################################\r
+# Your customizations\r
+\r
+# Unimportant text files\r
+# For universal scheme, use brightgreen 01;32\r
+# For optimal on light bg (but too prominent on dark bg), use white 01;34\r
+.log 01;32\r
+*~ 01;32\r
+*# 01;32\r
+#.log 01;34\r
+#*~ 01;34\r
+#*# 01;34\r
+\r
+# Unimportant non-text files\r
+# For universal scheme, use brightcyan 01;36\r
+# For optimal on dark bg (but too prominent on light bg), change to 01;33\r
+#.bak 01;36\r
+#.BAK 01;36\r
+#.old 01;36\r
+#.OLD 01;36\r
+#.org_archive 01;36\r
+#.off 01;36\r
+#.OFF 01;36\r
+#.dist 01;36\r
+#.DIST 01;36\r
+#.orig 01;36\r
+#.ORIG 01;36\r
+#.swp 01;36\r
+#.swo 01;36\r
+#*,v 01;36\r
+.bak 01;33\r
+.BAK 01;33\r
+.old 01;33\r
+.OLD 01;33\r
+.org_archive 01;33\r
+.off 01;33\r
+.OFF 01;33\r
+.dist 01;33\r
+.DIST 01;33\r
+.orig 01;33\r
+.ORIG 01;33\r
+.swp 01;33\r
+.swo 01;33\r
+*,v 01;33\r
+\r
+# The brightmagenta (Solarized: purple) color is free for you to use for your\r
+# custom file type\r
+.gpg 34\r
+.gpg 34\r
+.pgp 34\r
+.asc 34\r
+.3des 34\r
+.aes 34\r
+.enc 34\r
index a7db3a3770285946b94680b464e77e2bed9843d7..3ec65ffb651fa58de641014e2b77c2698dc26a52 100644 (file)
@@ -1 +1 @@
-.dotfiles
+.dotfiles\r
index 630cf3c659e6f1e80b0cce9aad9c75ac3e52d763..bba392df179eaaf2c031244cc2ccc5a6c5ce83f5 100644 (file)
--- a/.inputrc
+++ b/.inputrc
@@ -1,62 +1,62 @@
-# Use vi keybindings for everything that uses readline.
-
-# Adds punctuation as word delimiters
-set bind-tty-special-chars off
-
-# Completion Options
-set completion-ignore-case on
-set show-all-if-ambiguous on
-set show-all-if-unmodified on
-set mark-symlinked-directories on
-set match-hidden-files off
-set page-completions on
-set completion-query-items 200
-set visible-stats on
-set skip-completed-text on
-
-set editing-mode vi
-set keymap vi
-$if mode=vi
-    # Prompt will be prefixed with a `+` while in insert mode and a `:` when in command mode
-    #set show-mode-in-prompt on
-    set keymap vi-command
-    "gg": beginning-of-history
-    "G": end-of-history
-    "k": history-search-backward
-    "j": history-search-forward
-
-    set keymap vi-insert
-    "jj": vi-movement-mode
-    "\C-l": clear-screen
-    "\C-w": backward-kill-word
-    "\C-k": history-search-backward
-    "\C-j": history-search-forward
-$endif
-
-$if Bash
-  # do history expansion when space entered
-  Space: magic-space
-$endif
-
-$if Python
-$endif
-
-$if Gdb
-  "\e[15~": "continue\n"
-  "\e[21~": "next\n"
-  "\e[23~": "step\n"
-  "\eOQ": "nexti\n"
-  "\eOR": "stepi\n"
-$endif
-
-"\es": menu-complete
-
-# Useful stuff for UTF-8
-set meta-flag on
-set input-meta on
-set output-meta on
-set convert-meta off
-
-# Include system wide settings which is ignored
-# by default if one has own .inputrc
-$include ~/inputrc_local
+# Use vi keybindings for everything that uses readline.\r
+\r
+# Adds punctuation as word delimiters\r
+set bind-tty-special-chars off\r
+\r
+# Completion Options\r
+set completion-ignore-case on\r
+set show-all-if-ambiguous on\r
+set show-all-if-unmodified on\r
+set mark-symlinked-directories on\r
+set match-hidden-files off\r
+set page-completions on\r
+set completion-query-items 200\r
+set visible-stats on\r
+set skip-completed-text on\r
+\r
+set editing-mode vi\r
+set keymap vi\r
+$if mode=vi\r
+    # Prompt will be prefixed with a `+` while in insert mode and a `:` when in command mode\r
+    #set show-mode-in-prompt on\r
+    set keymap vi-command\r
+    "gg": beginning-of-history\r
+    "G": end-of-history\r
+    "k": history-search-backward\r
+    "j": history-search-forward\r
+\r
+    set keymap vi-insert\r
+    "jj": vi-movement-mode\r
+    "\C-l": clear-screen\r
+    "\C-w": backward-kill-word\r
+    "\C-k": history-search-backward\r
+    "\C-j": history-search-forward\r
+$endif\r
+\r
+$if Bash\r
+  # do history expansion when space entered\r
+  Space: magic-space\r
+$endif\r
+\r
+$if Python\r
+$endif\r
+\r
+$if Gdb\r
+  "\e[15~": "continue\n"\r
+  "\e[21~": "next\n"\r
+  "\e[23~": "step\n"\r
+  "\eOQ": "nexti\n"\r
+  "\eOR": "stepi\n"\r
+$endif\r
+\r
+"\es": menu-complete\r
+\r
+# Useful stuff for UTF-8\r
+set meta-flag on\r
+set input-meta on\r
+set output-meta on\r
+set convert-meta off\r
+\r
+# Include system wide settings which is ignored\r
+# by default if one has own .inputrc\r
+$include ~/inputrc_local\r
index ac752e18b9f1b1cbe4fcf26779d461724e7277fd..f6bcf3cd4f6a0afcbe853f46dfc373f7c32736f2 100644 (file)
--- a/.profile
+++ b/.profile
@@ -1,17 +1,17 @@
-# User dependent .profile file
-
-# This file is not read by bash(1) if ~/.bash_profile or ~/.bash_login
-# exists.
-
-# the default umask is set in /etc/profile;
-umask 022
-
-# if running bash
-if [ -n "${BASH_VERSION}" ]; then
-  [ -f "${HOME}/.bashrc" ] && . "${HOME}/.bashrc"
-fi
-
-# set path, environment, prompt etc
-for file in ${HOME}/.config/profile/*.sh; do
-  [ -f "$file" ] && . "$file";
-done;
+# User dependent .profile file\r
+\r
+# This file is not read by bash(1) if ~/.bash_profile or ~/.bash_login\r
+# exists.\r
+\r
+# the default umask is set in /etc/profile;\r
+umask 022\r
+\r
+# if running bash\r
+if [ -n "${BASH_VERSION}" ]; then\r
+  [ -f "${HOME}/.bashrc" ] && . "${HOME}/.bashrc"\r
+fi\r
+\r
+# set path, environment, prompt etc\r
+for file in ${HOME}/.config/profile/*.sh; do\r
+  [ -f "$file" ] && . "$file";\r
+done;\r
index a4a33ba125b969a0c7173f655b009d85a73299f8..5b9d007a5c83754c6d40e657f9052bb41a57d8f0 100644 (file)
--- a/.screenrc
+++ b/.screenrc
@@ -1,8 +1,8 @@
-# Disable the startup message
-startup_message off
-
-# Set a large scrollback buffer
-defscrollback 32000
-
-# Always start `screen` with UTF-8 enabled (`screen -U`)
-defutf8 on
+# Disable the startup message\r
+startup_message off\r
+\r
+# Set a large scrollback buffer\r
+defscrollback 32000\r
+\r
+# Always start `screen` with UTF-8 enabled (`screen -U`)\r
+defutf8 on\r
diff --git a/.ssh/config b/.ssh/config
deleted file mode 100644 (file)
index b9f8297..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-Host R renly renly.jannikz router
-  HostName renly.jannikz
-
-Host N balon balon.jannikz nas
-  HostName balon.jannikz
-
-Host A aegon aegon.jannikz macbook
-  HostName aegon.jannikz
-  ForwardX11 yes
-
-Host D walder walder.jannikz desktop
-  HostName walder.jannikz
-  ForwardX11 yes
-
-Host L loras loras.jannikz laptop
-  HostName loras.jannikz
-  ForwardX11 yes
-
-Host T tyrion tyrion.jannikz htpc
-  HostName tyrion.jannikz
-  ForwardX11 yes
-
-Host tywin
-  HostName tywin.jannikz
-
-Host V varys varys.jannikz.net roxy jannikz.net tpo.pe
-  HostName varys.jannikz.net
-
-Host home.jannikz.info
-  CheckHostIP no
-  HostKeyAlias renly.jannikz
-
-Host *.jannikz.us *.jannikz
-  ProxyCommand ssh -qax home.jannikz.info nc `echo %h|cut -d. -f1` %p
-
-Host *.* localhost
-  ProxyCommand none
-
-Host *
-  User jannikz
-  ForwardAgent yes
-  ProxyCommand sh -c '$HOME/.local/bin/jannikz host tunnel %h %p'j
index 4c56589237040b9357074308722bf357efbe0956..ecbbbdcf45e65a8890295ae7394102e49a6dfe8e 100644 (file)
-# Setting the prefix from C-b to C-a
-set -g prefix C-a
-# Free the original Ctrl-b prefix keybinding
-unbind C-b
-#setting the delay between prefix and command
-set -sg escape-time 1
-# Ensure that we can send Ctrl-A to other apps
-bind C-a send-prefix
-# Set the base index for windows to 1 instead of 0
-set -g base-index 1
-# Set the base index for panes to 1 instead of 0
-setw -g pane-base-index 1
-
-# Set the default terminal mode to 256color mode
-set -g default-terminal "screen-256color"
-# enable activity alerts
-setw -g monitor-activity on
-set -g visual-activity on
-# set the status line's colors
-set -g status-fg white
-set -g status-bg black
-# set the color of the window list
-setw -g window-status-fg cyan
-setw -g window-status-bg default
-setw -g window-status-attr dim
-# set colors for the active window
-setw -g window-status-current-fg white
-setw -g window-status-current-bg red
-setw -g window-status-current-attr bright
-# pane colors
-set -g pane-border-fg green
-set -g pane-border-bg black
-set -g pane-active-border-fg white
-set -g pane-active-border-bg yellow
-# Command / message line
-set -g message-fg white
-set -g message-bg black
-set -g message-attr bright
-# Status line left side
-set -g status-left-length 40
-set -g status-left "#[fg=green]Session: #S #[fg=yellow]#I #[fg=cyan]#P"
-set -g status-utf8 on
-# Status line right side
-# 15% | 28 Nov 18:15
-set -g status-right "#(~/battery Discharging) | #[fg=cyan]%d %b %R"
-# Update the status bar every sixty seconds
-set -g status-interval 60
-# Center the window list
-set -g status-justify centre
-set -g detach-on-destroy off
-# Increase history-limit for scrolling (default is 2000)
-set-option -g history-limit 15000
-# mouse support - set to on if you want to use the mouse
-#setw -g mode-mouse on
-#set -g mouse-select-pane on
-#set -g mouse-resize-pane on
-#set -g mouse-select-window on
-#set -g mouse-utf8 on
-# enable vi keys.
-setw -g mode-keys vi
-# Reload the file with Prefix r
-bind r source-file ~/.tmux.conf \; display "Reloaded!"
-# splitting panes
-bind c neww -c "#{pane_current_path}"
-bind | split-window -h -c "#{pane_current_path}"
-bind - split-window -v -c "#{pane_current_path}"
-# moving between panes
-bind h select-pane -L
-bind j select-pane -D
-bind k select-pane -U
-bind l select-pane -R
-# Quick pane selection
-bind -r C-h select-window -t :-
-bind -r C-l select-window -t :+
-# Pane resizing
-bind -r H resize-pane -L 5
-bind -r J resize-pane -D 5
-bind -r K resize-pane -U 5
-bind -r L resize-pane -R 5
-# Open panes in the same directory using the tmux-panes script
-unbind v
-unbind n
-bind v send-keys " ~/tmux-panes -h" C-m
-bind n send-keys " ~/tmux-panes -v" C-m
-# Maximize and restore a pane
-unbind Up
-bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp
-unbind Down
-bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp
-# Log output to a text file on demand
-bind P pipe-pane -o "cat >>~/#W.log" \; display "Toggled logging to ~/#W.log"
-# better binding for copy mode
-bind v copy-mode
-# Select/yank like vim
-bind -t vi-copy 'v' begin-selection
-bind -t vi-copy 'y' copy-selection
-# open tree instead of session list
-bind s run 'tmuxer choose-session'
-bind-key -t vi-choice h tree-collapse
-bind-key -t vi-choice l tree-expand
-# local/private settings
-source-file ~/.tmux_local.conf
+# Setting the prefix from C-b to C-a\r
+set -g prefix C-a\r
+# Free the original Ctrl-b prefix keybinding\r
+unbind C-b\r
+#setting the delay between prefix and command\r
+set -sg escape-time 1\r
+# Ensure that we can send Ctrl-A to other apps\r
+bind C-a send-prefix\r
+# Set the base index for windows to 1 instead of 0\r
+set -g base-index 1\r
+# Set the base index for panes to 1 instead of 0\r
+setw -g pane-base-index 1\r
+\r
+# Set the default terminal mode to 256color mode\r
+set -g default-terminal "screen-256color"\r
+# enable activity alerts\r
+setw -g monitor-activity on\r
+set -g visual-activity on\r
+# set the status line's colors\r
+set -g status-fg white\r
+set -g status-bg black\r
+# set the color of the window list\r
+setw -g window-status-fg cyan\r
+setw -g window-status-bg default\r
+setw -g window-status-attr dim\r
+# set colors for the active window\r
+setw -g window-status-current-fg white\r
+setw -g window-status-current-bg red\r
+setw -g window-status-current-attr bright\r
+# pane colors\r
+set -g pane-border-fg green\r
+set -g pane-border-bg black\r
+set -g pane-active-border-fg white\r
+set -g pane-active-border-bg yellow\r
+# Command / message line\r
+set -g message-fg white\r
+set -g message-bg black\r
+set -g message-attr bright\r
+# Status line left side\r
+set -g status-left-length 40\r
+set -g status-left "#[fg=green]Session: #S #[fg=yellow]#I #[fg=cyan]#P"\r
+set -g status-utf8 on\r
+# Status line right side\r
+# 15% | 28 Nov 18:15\r
+set -g status-right "#(~/battery Discharging) | #[fg=cyan]%d %b %R"\r
+# Update the status bar every sixty seconds\r
+set -g status-interval 60\r
+# Center the window list\r
+set -g status-justify centre\r
+set -g detach-on-destroy off\r
+# Increase history-limit for scrolling (default is 2000)\r
+set-option -g history-limit 15000\r
+# mouse support - set to on if you want to use the mouse\r
+#setw -g mode-mouse on\r
+#set -g mouse-select-pane on\r
+#set -g mouse-resize-pane on\r
+#set -g mouse-select-window on\r
+#set -g mouse-utf8 on\r
+# enable vi keys.\r
+setw -g mode-keys vi\r
+# Reload the file with Prefix r\r
+bind r source-file ~/.tmux.conf \; display "Reloaded!"\r
+# splitting panes\r
+bind c neww -c "#{pane_current_path}"\r
+bind | split-window -h -c "#{pane_current_path}"\r
+bind - split-window -v -c "#{pane_current_path}"\r
+# moving between panes\r
+bind h select-pane -L\r
+bind j select-pane -D\r
+bind k select-pane -U\r
+bind l select-pane -R\r
+# Quick pane selection\r
+bind -r C-h select-window -t :-\r
+bind -r C-l select-window -t :+\r
+# Pane resizing\r
+bind -r H resize-pane -L 5\r
+bind -r J resize-pane -D 5\r
+bind -r K resize-pane -U 5\r
+bind -r L resize-pane -R 5\r
+# Open panes in the same directory using the tmux-panes script\r
+unbind v\r
+unbind n\r
+bind v send-keys " ~/tmux-panes -h" C-m\r
+bind n send-keys " ~/tmux-panes -v" C-m\r
+# Maximize and restore a pane\r
+unbind Up\r
+bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp\r
+unbind Down\r
+bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp\r
+# Log output to a text file on demand\r
+bind P pipe-pane -o "cat >>~/#W.log" \; display "Toggled logging to ~/#W.log"\r
+# better binding for copy mode\r
+bind v copy-mode\r
+# Select/yank like vim\r
+bind -t vi-copy 'v' begin-selection\r
+bind -t vi-copy 'y' copy-selection\r
+# open tree instead of session list\r
+bind s run 'tmuxer choose-session'\r
+bind-key -t vi-choice h tree-collapse\r
+bind-key -t vi-choice l tree-expand\r
+# local/private settings\r
+source-file ~/.tmux_local.conf\r
diff --git a/.vimrc b/.vimrc
index ef01a5a3a0b65a61dddd9e6c1ed5e96f6ca4686c..27a3137574b890a3f707fe90471561e6e36fbec1 100644 (file)
--- a/.vimrc
+++ b/.vimrc
@@ -22,21 +22,31 @@ set runtimepath+=~/.cache/vim
 " ---------------------\r
 silent call plug#begin('~/.cache/vim/bundle')\r
 Plug 'tpope/vim-repeat'\r
-Plug 'tpope/vim-surround'\r
 Plug 'tpope/vim-fugitive'\r
+Plug 'tpope/vim-surround'\r
 Plug 'tpope/vim-commentary'\r
+Plug 'tpope/vim-unimpaired'\r
 Plug 'tpope/vim-dispatch'\r
 "Plug 'tpope/vim-vinager'\r
 Plug 'scrooloose/syntastic'\r
+"Plug 'vim-airline/vim-airline'\r
+Plug 'airblade/vim-gitgutter'\r
+Plug 'majutsushi/tagbar'\r
+Plug 'fholgado/minibufexpl.vim'\r
+Plug 'brookhong/cscope.vim'\r
 Plug 'ctrlpvim/ctrlp.vim'\r
 Plug 'brandonbloom/csearch.vim'\r
-Plug 'chazy/cscope_maps'\r
+Plug 'mileszs/ack.vim'\r
+Plug 'jeetsukumaran/vim-filesearch'\r
+Plug 'haya14busa/incsearch.vim'\r
 Plug 'altercation/vim-colors-solarized'\r
-"Plug 'editorconfig/editorconfig-vim'\r
-Plug 'fholgado/minibufexpl.vim'\r
-Plug 'a.vim'\r
-Plug 'heaths/vim-msbuild'\r
-Plug 'klen/python-mode'\r
+Plug 'editorconfig/editorconfig-vim'\r
+Plug 'johnsyweb/vim-makeshift'\r
+Plug 'tfnico/vim-gradle'\r
+"Plug 'a.vim'\r
+"Plug 'heaths/vim-msbuild'\r
+"Plug 'hdima/python-syntax'\r
+"Plug 'klen/python-mode'\r
 "Plug 'jalcine/cmake.vim'\r
 call plug#end()\r
 \r
@@ -61,9 +71,9 @@ set clipboard=unnamed
 "set clipboard=unnamedplus\r
 "endif\r
 set fileformats=unix,dos,mac\r
-"set foldmethod=indent\r
-"set foldlevel=99\r
-"set foldmethod=marker\r
+"set foldmethod=syntax\r
+"set foldlevel=1\r
+"set foldclose=all\r
 "set foldopen+=jump\r
 set guioptions+=a\r
 set history=200\r
@@ -75,7 +85,7 @@ set mouse=nvi
 set mousemodel=popup\r
 set number\r
 "set pastetoggle=<f2>\r
-set path=**\r
+set path=.,,**,C:\programs\IAR\\\ System\EWB_V850_V360\common\bin\r
 set printoptions=paper:letter\r
 set scrolloff=1\r
 set shiftround\r
@@ -92,6 +102,7 @@ if exists('+undofile')
   set undofile\r
 endif\r
 set virtualedit=block\r
+set updatetime=250\r
 set wildmenu\r
 set wildmode=longest:full,full\r
 set wildignore+=tags,.*.un~,*.pyc\r
@@ -100,12 +111,23 @@ set winaltkeys=no
 "if !has("gui_running") && $display == '' || !has("gui")\r
 "    set mouse=\r
 "endif\r
-\r
-set makeprg=cmake\ --build\ .\r
+"\r
+"set makeprg=cmake\ --build\ .\r
 " Visual studio 2013\r
 "set errorformat=\ %#%f(%l):\ %m\r
 " Visual studio 2008\r
-set errorformat=%.%#>\ %#%f(%l)\ :\ %m\r
+"set errorformat=%.%#>\ %#%f(%l)\ :\ %m\r
+"\r
+" IAR compiler\r
+set makeprg=vim-iarbuild.cmd\r
+set errorformat=%f(%l)\ :\ %m\r
+\r
+"syn match   pythonDefStatement  /^\s*\%(def\|class\)/\r
+"       \ nextgroup=pythonFunction skipwhite\r
+"syn region  pythonFunctionFold  start="^\z(\s*\)\%(def\|class\)\>"\r
+"       \ end="\ze\%(\s*\n\)\+\%(\z1\s\)\@!." fold transparent\r
+\r
+"hi link pythonDefStatement Statement\r
 \r
 let g:syntastic_quiet_messages = { "type": "style" }\r
 \r
@@ -143,6 +165,7 @@ let &t_SI.="\e[5 q"
 let &t_EI.="\e[1 q"\r
 let &t_te.="\e[0 q"\r
 \r
+let python_folding = 1\r
 " }}}2\r
 " section: commands {{{1\r
 "-----------------------\r
@@ -182,6 +205,7 @@ endif"
 "\r
 let mapleader = ","\r
 \r
+\r
 " Quickly edit/reload the vimrc file\r
 nmap <silent> <leader>ev :e $MYVIMRC<CR>\r
 nmap <silent> <leader>sv :so $MYVIMRC<CR>\r
@@ -190,6 +214,9 @@ nmap <silent> <leader>sv :so $MYVIMRC<CR>
 nnoremap <Leader>b    :MBEToggle<cr>\r
 "let g:miniBufExplMapWindowNavVim = 1\r
 "let g:miniBufExplMapCTabSwitchBufs = 1\r
+"\r
+" Tagbar\r
+nnoremap <Leader>t    :TagbarToggle<CR>\r
 \r
 " copy/paste from system clipboard\r
 if  has("win32")\r
@@ -197,6 +224,7 @@ vnoremap <Leader>y "*y
 vnoremap <Leader>d "*d\r
 nnoremap <Leader>p "*p\r
 nnoremap <Leader>P "*P\r
+\r
 vnoremap <Leader>p "*p\r
 vnoremap <Leader>P "*P\r
 else\r
@@ -211,27 +239,39 @@ else
 endif\r
 \r
 if has("cscope")\r
-    cnoreabbrev <expr> csa\r
-          \ ((getcmdtype() == ':' && getcmdpos() <= 4)? 'cs add'  : 'csa')\r
-    cnoreabbrev <expr> csf\r
-          \ ((getcmdtype() == ':' && getcmdpos() <= 4)? 'cs find' : 'csf')\r
-    cnoreabbrev <expr> csk\r
-          \ ((getcmdtype() == ':' && getcmdpos() <= 4)? 'cs kill' : 'csk')\r
-    cnoreabbrev <expr> csr\r
-          \ ((getcmdtype() == ':' && getcmdpos() <= 4)? 'cs reset' : 'csr')\r
-    cnoreabbrev <expr> css\r
-          \ ((getcmdtype() == ':' && getcmdpos() <= 4)? 'cs show' : 'css')\r
-    cnoreabbrev <expr> csh\r
-          \ ((getcmdtype() == ':' && getcmdpos() <= 4)? 'cs help' : 'csh')\r
-\r
-  nnoremap <leader>fs :cscope find s <c-r>=expand("<cword>")<cr><cr>:botright cwindow<cr>\r
-  nnoremap <leader>fg :cscope find g <c-r>=expand("<cword>")<cr><cr>:botright cwindow<cr>\r
-  nnoremap <leader>fc :cscope find c <c-r>=expand("<cword>")<cr><cr>:botright cwindow<cr>\r
-  nnoremap <leader>ft :cscope find t <c-r>=expand("<cword>")<cr><cr>:botright cwindow<cr>\r
-  nnoremap <leader>fe :cscope find e <c-r>=expand("<cword>")<cr><cr>:botright cwindow<cr>\r
-  nnoremap <leader>ff :cscope find f <c-r>=expand("<cfile>")<cr><cr>:botright cwindow<cr>\r
-  nnoremap <leader>fd :cscope find d <c-r>=expand("<cword>")<cr><cr>:botright cwindow<cr>\r
-  nnoremap <leader>fi :cscope find i ^<c-r>=expand("<cfile>")<cr>$<cr>:botright cwindow<cr>\r
+"    cnoreabbrev <expr> csa\r
+"          \ ((getcmdtype() == ':' && getcmdpos() <= 4)? 'cs add'  : 'csa')\r
+"    cnoreabbrev <expr> csf\r
+"          \ ((getcmdtype() == ':' && getcmdpos() <= 4)? 'cs find' : 'csf')\r
+"    cnoreabbrev <expr> csk\r
+"          \ ((getcmdtype() == ':' && getcmdpos() <= 4)? 'cs kill' : 'csk')\r
+"    cnoreabbrev <expr> csr\r
+"          \ ((getcmdtype() == ':' && getcmdpos() <= 4)? 'cs reset' : 'csr')\r
+"    cnoreabbrev <expr> css\r
+"          \ ((getcmdtype() == ':' && getcmdpos() <= 4)? 'cs show' : 'css')\r
+"    cnoreabbrev <expr> csh\r
+"          \ ((getcmdtype() == ':' && getcmdpos() <= 4)? 'cs help' : 'csh')\r
+\r
+  nnoremap <leader>fa :call CscopeFindInteractive(expand('<cword>'))<CR>\r
+  nnoremap <leader>l :call ToggleLocationList()<CR>\r
+\r
+  " s: Find this C symbol\r
+  nnoremap  <leader>fs :call CscopeFind('s', expand('<cword>'))<CR>\r
+  " g: Find this definition\r
+  nnoremap  <leader>fg :call CscopeFind('g', expand('<cword>'))<CR>\r
+  " d: Find functions called by this function\r
+  nnoremap  <leader>fd :call CscopeFind('d', expand('<cword>'))<CR>\r
+  " c: Find functions calling this function\r
+  nnoremap  <leader>fc :call CscopeFind('c', expand('<cword>'))<CR>\r
+  " t: Find this text string\r
+  nnoremap  <leadpr>ft :call CscopeFind('t', expand('<cword>'))<CR>\r
+  " e: Find this egrep pattern\r
+  nnoremap  <leader>fe :call CscopeFind('e', expand('<cword>'))<CR>\r
+  " f: Find this file\r
+  nnoremap  <leader>ff :call CscopeFind('f', expand('<cword>'))<CR>\r
+  " i: Find files #including this file\r
+  nnoremap  <leader>fi :call CscopeFind('i', expand('<cword>'))<CR>\r
+\r
   "todo: figure out how to get cstag output in quickfix or a popup menu.\r
   map <c-_> :cstag <c-r>=expand("<cword>")<cr><cr>\r
 endif\r
@@ -301,3 +341,4 @@ endif
 if filereadable(expand('~/.vimrc_local'))\r
   source ~/.vimrc_local\r
 endif\r
+\r
index 0343df99790f96295869473fc6910b1ecee2530d..edeb5af2a0b5f4a7223d6cabf2c3382e50b4225e 100644 (file)
@@ -1,19 +1,19 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-       <key>CFBundleIdentifier</key>
-       <string>org.sil.ukelele.keyboardlayout.usdanish</string>
-       <key>CFBundleName</key>
-       <string>usdanish</string>
-       <key>CFBundleVersion</key>
-       <string></string>
-       <key>KLInfo_U.S.Denmark</key>
-       <dict>
-               <key>TISInputSourceID</key>
-               <string>org.sil.ukelele.keyboardlayout.usdanish.u.s.denmark</string>
-               <key>TISIntendedLanguage</key>
-               <string>en-DK</string>
-       </dict>
-</dict>
-</plist>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\r
+<plist version="1.0">\r
+<dict>\r
+       <key>CFBundleIdentifier</key>\r
+       <string>org.sil.ukelele.keyboardlayout.usdanish</string>\r
+       <key>CFBundleName</key>\r
+       <string>usdanish</string>\r
+       <key>CFBundleVersion</key>\r
+       <string></string>\r
+       <key>KLInfo_U.S.Denmark</key>\r
+       <dict>\r
+               <key>TISInputSourceID</key>\r
+               <string>org.sil.ukelele.keyboardlayout.usdanish.u.s.denmark</string>\r
+               <key>TISIntendedLanguage</key>\r
+               <string>en-DK</string>\r
+       </dict>\r
+</dict>\r
+</plist>\r
index 0baef4703a131698fc98cadfe4e5fa23bd79d44a..ae0a6a56205b38ad0c271d6eb985a7c6a85c6db7 100644 (file)
-<?xml version="1.1" encoding="UTF-8"?>
-<!DOCTYPE keyboard SYSTEM "file://localhost/System/Library/DTDs/KeyboardLayout.dtd">
-<!--Last edited by Ukelele version 3.0.3.70 on 2016-05-09 at 20:51 (GMT+2)-->
-<keyboard group="126" id="-18679" name="U.S.Denmark" maxout="1">
-       <layouts>
-               <layout first="0" last="17" mapSet="16c" modifiers="f4"/>
-               <layout first="18" last="18" mapSet="984" modifiers="f4"/>
-               <layout first="21" last="23" mapSet="984" modifiers="f4"/>
-               <layout first="30" last="30" mapSet="984" modifiers="f4"/>
-               <layout first="194" last="194" mapSet="984" modifiers="f4"/>
-               <layout first="197" last="197" mapSet="984" modifiers="f4"/>
-               <layout first="200" last="201" mapSet="984" modifiers="f4"/>
-               <layout first="206" last="207" mapSet="984" modifiers="f4"/>
-       </layouts>
-       <modifierMap id="f4" defaultIndex="7">
-               <keyMapSelect mapIndex="0">
-                       <modifier keys="command?"/>
-                       <modifier keys="anyShift? caps? command"/>
-               </keyMapSelect>
-               <keyMapSelect mapIndex="1">
-                       <modifier keys="anyShift caps?"/>
-               </keyMapSelect>
-               <keyMapSelect mapIndex="2">
-                       <modifier keys="caps"/>
-               </keyMapSelect>
-               <keyMapSelect mapIndex="3">
-                       <modifier keys="anyOption"/>
-               </keyMapSelect>
-               <keyMapSelect mapIndex="4">
-                       <modifier keys="anyShift caps? anyOption command?"/>
-               </keyMapSelect>
-               <keyMapSelect mapIndex="5">
-                       <modifier keys="caps anyOption"/>
-               </keyMapSelect>
-               <keyMapSelect mapIndex="6">
-                       <modifier keys="caps? anyOption command"/>
-               </keyMapSelect>
-               <keyMapSelect mapIndex="7">
-                       <modifier keys="anyShift caps? option? command? control"/>
-                       <modifier keys="shift? caps? anyOption command? control"/>
-                       <modifier keys="caps? anyOption? command? control"/>
-               </keyMapSelect>
-       </modifierMap>
-       <keyMapSet id="16c">
-               <keyMap index="0">
-                       <key code="0" action="13"/>
-                       <key code="1" output="s"/>
-                       <key code="2" output="d"/>
-                       <key code="3" output="f"/>
-                       <key code="4" output="h"/>
-                       <key code="5" output="g"/>
-                       <key code="6" output="z"/>
-                       <key code="7" output="x"/>
-                       <key code="8" output="c"/>
-                       <key code="9" output="v"/>
-                       <key code="10" output="§"/>
-                       <key code="11" output="b"/>
-                       <key code="12" output="q"/>
-                       <key code="13" output="w"/>
-                       <key code="14" action="14"/>
-                       <key code="15" output="r"/>
-                       <key code="16" action="19"/>
-                       <key code="17" output="t"/>
-                       <key code="18" output="1"/>
-                       <key code="19" output="2"/>
-                       <key code="20" output="3"/>
-                       <key code="21" output="4"/>
-                       <key code="22" output="6"/>
-                       <key code="23" output="5"/>
-                       <key code="24" output="="/>
-                       <key code="25" output="9"/>
-                       <key code="26" output="7"/>
-                       <key code="27" output="-"/>
-                       <key code="28" output="8"/>
-                       <key code="29" output="0"/>
-                       <key code="30" output="]"/>
-                       <key code="31" action="17"/>
-                       <key code="32" action="18"/>
-                       <key code="33" output="["/>
-                       <key code="34" action="15"/>
-                       <key code="35" output="p"/>
-                       <key code="36" output="&#x000D;"/>
-                       <key code="37" output="l"/>
-                       <key code="38" output="j"/>
-                       <key code="39" action="&#x0027;"/>
-                       <key code="40" output="k"/>
-                       <key code="41" output=";"/>
-                       <key code="42" output="\"/>
-                       <key code="43" output=","/>
-                       <key code="44" output="/"/>
-                       <key code="45" action="16"/>
-                       <key code="46" output="m"/>
-                       <key code="47" output="."/>
-                       <key code="48" output="&#x0009;"/>
-                       <key code="49" action="5"/>
-                       <key code="50" action="`"/>
-                       <key code="51" output="&#x0008;"/>
-                       <key code="52" output="&#x0003;"/>
-                       <key code="53" output="&#x001B;"/>
-                       <key code="56" output=""/>
-                       <key code="57" output=""/>
-                       <key code="65" output="."/>
-                       <key code="66" output="&#x001D;"/>
-                       <key code="67" output="*"/>
-                       <key code="69" output="+"/>
-                       <key code="70" output="&#x001C;"/>
-                       <key code="71" output="&#x001B;"/>
-                       <key code="72" output="&#x001F;"/>
-                       <key code="75" output="/"/>
-                       <key code="76" output="&#x0003;"/>
-                       <key code="77" output="&#x001E;"/>
-                       <key code="78" output="-"/>
-                       <key code="81" output="="/>
-                       <key code="82" output="0"/>
-                       <key code="83" output="1"/>
-                       <key code="84" output="2"/>
-                       <key code="85" output="3"/>
-                       <key code="86" output="4"/>
-                       <key code="87" output="5"/>
-                       <key code="88" output="6"/>
-                       <key code="89" output="7"/>
-                       <key code="91" output="8"/>
-                       <key code="92" output="9"/>
-                       <key code="96" output="&#x0010;"/>
-                       <key code="97" output="&#x0010;"/>
-                       <key code="98" output="&#x0010;"/>
-                       <key code="99" output="&#x0010;"/>
-                       <key code="100" output="&#x0010;"/>
-                       <key code="101" output="&#x0010;"/>
-                       <key code="102" output="&#x0010;"/>
-                       <key code="103" output="&#x0010;"/>
-                       <key code="104" output="&#x0010;"/>
-                       <key code="105" output="&#x0010;"/>
-                       <key code="106" output="&#x0010;"/>
-                       <key code="107" output="&#x0010;"/>
-                       <key code="108" output="&#x0010;"/>
-                       <key code="109" output="&#x0010;"/>
-                       <key code="110" output="&#x0010;"/>
-                       <key code="111" output="&#x0010;"/>
-                       <key code="112" output="&#x0010;"/>
-                       <key code="113" output="&#x0010;"/>
-                       <key code="114" output="&#x0005;"/>
-                       <key code="115" output="&#x0001;"/>
-                       <key code="116" output="&#x000B;"/>
-                       <key code="117" output="&#x007F;"/>
-                       <key code="118" output="&#x0010;"/>
-                       <key code="119" output="&#x0004;"/>
-                       <key code="120" output="&#x0010;"/>
-                       <key code="121" output="&#x000C;"/>
-                       <key code="122" output="&#x0010;"/>
-                       <key code="123" output="&#x001C;"/>
-                       <key code="124" output="&#x001D;"/>
-                       <key code="125" output="&#x001F;"/>
-                       <key code="126" output="&#x001E;"/>
-               </keyMap>
-               <keyMap index="1">
-                       <key code="0" action="6"/>
-                       <key code="1" output="S"/>
-                       <key code="2" output="D"/>
-                       <key code="3" output="F"/>
-                       <key code="4" output="H"/>
-                       <key code="5" output="G"/>
-                       <key code="6" output="Z"/>
-                       <key code="7" output="X"/>
-                       <key code="8" output="C"/>
-                       <key code="9" output="V"/>
-                       <key code="10" output="±"/>
-                       <key code="11" output="B"/>
-                       <key code="12" output="Q"/>
-                       <key code="13" output="W"/>
-                       <key code="14" action="7"/>
-                       <key code="15" output="R"/>
-                       <key code="16" action="12"/>
-                       <key code="17" output="T"/>
-                       <key code="18" output="!"/>
-                       <key code="19" output="@"/>
-                       <key code="20" output="#"/>
-                       <key code="21" output="$"/>
-                       <key code="22" output="^"/>
-                       <key code="23" output="%"/>
-                       <key code="24" output="+"/>
-                       <key code="25" output="("/>
-                       <key code="26" output="&#x0026;"/>
-                       <key code="27" output="_"/>
-                       <key code="28" output="*"/>
-                       <key code="29" output=")"/>
-                       <key code="30" output="}"/>
-                       <key code="31" action="10"/>
-                       <key code="32" action="11"/>
-                       <key code="33" output="{"/>
-                       <key code="34" action="8"/>
-                       <key code="35" output="P"/>
-                       <key code="36" output="&#x000D;"/>
-                       <key code="37" output="L"/>
-                       <key code="38" output="J"/>
-                       <key code="39" action="&#x0022;"/>
-                       <key code="40" output="K"/>
-                       <key code="41" output=":"/>
-                       <key code="42" output="|"/>
-                       <key code="43" output="&#x003C;"/>
-                       <key code="44" output="?"/>
-                       <key code="45" action="9"/>
-                       <key code="46" output="M"/>
-                       <key code="47" output="&#x003E;"/>
-                       <key code="48" output="&#x0009;"/>
-                       <key code="49" action="5"/>
-                       <key code="50" output="~"/>
-                       <key code="51" output="&#x0008;"/>
-                       <key code="52" output="&#x0003;"/>
-                       <key code="53" output="&#x001B;"/>
-                       <key code="65" output="."/>
-                       <key code="66" output="*"/>
-                       <key code="67" output="*"/>
-                       <key code="69" output="+"/>
-                       <key code="70" output="+"/>
-                       <key code="71" output="&#x001B;"/>
-                       <key code="72" output="="/>
-                       <key code="75" output="/"/>
-                       <key code="76" output="&#x0003;"/>
-                       <key code="77" output="/"/>
-                       <key code="78" output="-"/>
-                       <key code="81" output="="/>
-                       <key code="82" output="0"/>
-                       <key code="83" output="1"/>
-                       <key code="84" output="2"/>
-                       <key code="85" output="3"/>
-                       <key code="86" output="4"/>
-                       <key code="87" output="5"/>
-                       <key code="88" output="6"/>
-                       <key code="89" output="7"/>
-                       <key code="91" output="8"/>
-                       <key code="92" output="9"/>
-                       <key code="96" output="&#x0010;"/>
-                       <key code="97" output="&#x0010;"/>
-                       <key code="98" output="&#x0010;"/>
-                       <key code="99" output="&#x0010;"/>
-                       <key code="100" output="&#x0010;"/>
-                       <key code="101" output="&#x0010;"/>
-                       <key code="102" output="&#x0010;"/>
-                       <key code="103" output="&#x0010;"/>
-                       <key code="104" output="&#x0010;"/>
-                       <key code="105" output="&#x0010;"/>
-                       <key code="106" output="&#x0010;"/>
-                       <key code="107" output="&#x0010;"/>
-                       <key code="108" output="&#x0010;"/>
-                       <key code="109" output="&#x0010;"/>
-                       <key code="110" output="&#x0010;"/>
-                       <key code="111" output="&#x0010;"/>
-                       <key code="112" output="&#x0010;"/>
-                       <key code="113" output="&#x0010;"/>
-                       <key code="114" output="&#x0005;"/>
-                       <key code="115" output="&#x0001;"/>
-                       <key code="116" output="&#x000B;"/>
-                       <key code="117" output="&#x007F;"/>
-                       <key code="118" output="&#x0010;"/>
-                       <key code="119" output="&#x0004;"/>
-                       <key code="120" output="&#x0010;"/>
-                       <key code="121" output="&#x000C;"/>
-                       <key code="122" output="&#x0010;"/>
-                       <key code="123" output="&#x001C;"/>
-                       <key code="124" output="&#x001D;"/>
-                       <key code="125" output="&#x001F;"/>
-                       <key code="126" output="&#x001E;"/>
-               </keyMap>
-               <keyMap index="2">
-                       <key code="0" action="6"/>
-                       <key code="1" output="S"/>
-                       <key code="2" output="D"/>
-                       <key code="3" output="F"/>
-                       <key code="4" output="H"/>
-                       <key code="5" output="G"/>
-                       <key code="6" output="Z"/>
-                       <key code="7" output="X"/>
-                       <key code="8" output="C"/>
-                       <key code="9" output="V"/>
-                       <key code="10" output="§"/>
-                       <key code="11" output="B"/>
-                       <key code="12" output="Q"/>
-                       <key code="13" output="W"/>
-                       <key code="14" action="7"/>
-                       <key code="15" output="R"/>
-                       <key code="16" action="12"/>
-                       <key code="17" output="T"/>
-                       <key code="18" output="1"/>
-                       <key code="19" output="2"/>
-                       <key code="20" output="3"/>
-                       <key code="21" output="4"/>
-                       <key code="22" output="6"/>
-                       <key code="23" output="5"/>
-                       <key code="24" output="="/>
-                       <key code="25" output="9"/>
-                       <key code="26" output="7"/>
-                       <key code="27" output="-"/>
-                       <key code="28" output="8"/>
-                       <key code="29" output="0"/>
-                       <key code="30" output="]"/>
-                       <key code="31" action="10"/>
-                       <key code="32" action="11"/>
-                       <key code="33" output="["/>
-                       <key code="34" action="8"/>
-                       <key code="35" output="P"/>
-                       <key code="36" output="&#x000D;"/>
-                       <key code="37" output="L"/>
-                       <key code="38" output="J"/>
-                       <key code="39" output="&#x0027;"/>
-                       <key code="40" output="K"/>
-                       <key code="41" output=";"/>
-                       <key code="42" output="\"/>
-                       <key code="43" output=","/>
-                       <key code="44" output="/"/>
-                       <key code="45" action="9"/>
-                       <key code="46" output="M"/>
-                       <key code="47" output="."/>
-                       <key code="48" output="&#x0009;"/>
-                       <key code="49" action="5"/>
-                       <key code="50" output="`"/>
-                       <key code="51" output="&#x0008;"/>
-                       <key code="52" output="&#x0003;"/>
-                       <key code="53" output="&#x001B;"/>
-                       <key code="65" output="."/>
-                       <key code="66" output="&#x001D;"/>
-                       <key code="67" output="*"/>
-                       <key code="69" output="+"/>
-                       <key code="70" output="&#x001C;"/>
-                       <key code="71" output="&#x001B;"/>
-                       <key code="72" output="&#x001F;"/>
-                       <key code="75" output="/"/>
-                       <key code="76" output="&#x0003;"/>
-                       <key code="77" output="&#x001E;"/>
-                       <key code="78" output="-"/>
-                       <key code="81" output="="/>
-                       <key code="82" output="0"/>
-                       <key code="83" output="1"/>
-                       <key code="84" output="2"/>
-                       <key code="85" output="3"/>
-                       <key code="86" output="4"/>
-                       <key code="87" output="5"/>
-                       <key code="88" output="6"/>
-                       <key code="89" output="7"/>
-                       <key code="91" output="8"/>
-                       <key code="92" output="9"/>
-                       <key code="96" output="&#x0010;"/>
-                       <key code="97" output="&#x0010;"/>
-                       <key code="98" output="&#x0010;"/>
-                       <key code="99" output="&#x0010;"/>
-                       <key code="100" output="&#x0010;"/>
-                       <key code="101" output="&#x0010;"/>
-                       <key code="102" output="&#x0010;"/>
-                       <key code="103" output="&#x0010;"/>
-                       <key code="104" output="&#x0010;"/>
-                       <key code="105" output="&#x0010;"/>
-                       <key code="106" output="&#x0010;"/>
-                       <key code="107" output="&#x0010;"/>
-                       <key code="108" output="&#x0010;"/>
-                       <key code="109" output="&#x0010;"/>
-                       <key code="110" output="&#x0010;"/>
-                       <key code="111" output="&#x0010;"/>
-                       <key code="112" output="&#x0010;"/>
-                       <key code="113" output="&#x0010;"/>
-                       <key code="114" output="&#x0005;"/>
-                       <key code="115" output="&#x0001;"/>
-                       <key code="116" output="&#x000B;"/>
-                       <key code="117" output="&#x007F;"/>
-                       <key code="118" output="&#x0010;"/>
-                       <key code="119" output="&#x0004;"/>
-                       <key code="120" output="&#x0010;"/>
-                       <key code="121" output="&#x000C;"/>
-                       <key code="122" output="&#x0010;"/>
-                       <key code="123" output="&#x001C;"/>
-                       <key code="124" output="&#x001D;"/>
-                       <key code="125" output="&#x001F;"/>
-                       <key code="126" output="&#x001E;"/>
-               </keyMap>
-               <keyMap index="3">
-                       <key code="0" output="å"/>
-                       <key code="1" output="ß"/>
-                       <key code="2" output="∂"/>
-                       <key code="3" output="ƒ"/>
-                       <key code="4" output="˙"/>
-                       <key code="5" output="©"/>
-                       <key code="6" output="Ω"/>
-                       <key code="7" output="≈"/>
-                       <key code="8" output="ç"/>
-                       <key code="9" output="√"/>
-                       <key code="10" output="§"/>
-                       <key code="11" output="∫"/>
-                       <key code="12" output="œ"/>
-                       <key code="13" output="∑"/>
-                       <key code="14" action="0"/>
-                       <key code="15" output="®"/>
-                       <key code="16" output="¥"/>
-                       <key code="17" output="†"/>
-                       <key code="18" output="¡"/>
-                       <key code="19" output="™"/>
-                       <key code="20" output="£"/>
-                       <key code="21" output="¢"/>
-                       <key code="22" output="§"/>
-                       <key code="23" output="∞"/>
-                       <key code="24" output="≠"/>
-                       <key code="25" output="ª"/>
-                       <key code="26" output="¶"/>
-                       <key code="27" output="–"/>
-                       <key code="28" output="•"/>
-                       <key code="29" output="º"/>
-                       <key code="30" output="‘"/>
-                       <key code="31" output="ø"/>
-                       <key code="32" action="3"/>
-                       <key code="33" output="“"/>
-                       <key code="34" action="2"/>
-                       <key code="35" output="π"/>
-                       <key code="36" output="&#x000D;"/>
-                       <key code="37" output="¬"/>
-                       <key code="38" output="∆"/>
-                       <key code="39" output="æ"/>
-                       <key code="40" output="˚"/>
-                       <key code="41" output="…"/>
-                       <key code="42" output="«"/>
-                       <key code="43" output="≤"/>
-                       <key code="44" output="÷"/>
-                       <key code="45" action="4"/>
-                       <key code="46" output="µ"/>
-                       <key code="47" output="≥"/>
-                       <key code="48" output="&#x0009;"/>
-                       <key code="49" output=" "/>
-                       <key code="50" action="1"/>
-                       <key code="51" output="&#x0008;"/>
-                       <key code="52" output="&#x0003;"/>
-                       <key code="53" output="&#x001B;"/>
-                       <key code="65" output="."/>
-                       <key code="66" output="&#x001D;"/>
-                       <key code="67" output="*"/>
-                       <key code="69" output="+"/>
-                       <key code="70" output="&#x001C;"/>
-                       <key code="71" output="&#x001B;"/>
-                       <key code="72" output="&#x001F;"/>
-                       <key code="75" output="/"/>
-                       <key code="76" output="&#x0003;"/>
-                       <key code="77" output="&#x001E;"/>
-                       <key code="78" output="-"/>
-                       <key code="81" output="="/>
-                       <key code="82" output="0"/>
-                       <key code="83" output="1"/>
-                       <key code="84" output="2"/>
-                       <key code="85" output="3"/>
-                       <key code="86" output="4"/>
-                       <key code="87" output="5"/>
-                       <key code="88" output="6"/>
-                       <key code="89" output="7"/>
-                       <key code="91" output="8"/>
-                       <key code="92" output="9"/>
-                       <key code="96" output="&#x0010;"/>
-                       <key code="97" output="&#x0010;"/>
-                       <key code="98" output="&#x0010;"/>
-                       <key code="99" output="&#x0010;"/>
-                       <key code="100" output="&#x0010;"/>
-                       <key code="101" output="&#x0010;"/>
-                       <key code="102" output="&#x0010;"/>
-                       <key code="103" output="&#x0010;"/>
-                       <key code="104" output="&#x0010;"/>
-                       <key code="105" output="&#x0010;"/>
-                       <key code="106" output="&#x0010;"/>
-                       <key code="107" output="&#x0010;"/>
-                       <key code="108" output="&#x0010;"/>
-                       <key code="109" output="&#x0010;"/>
-                       <key code="110" output="&#x0010;"/>
-                       <key code="111" output="&#x0010;"/>
-                       <key code="112" output="&#x0010;"/>
-                       <key code="113" output="&#x0010;"/>
-                       <key code="114" output="&#x0005;"/>
-                       <key code="115" output="&#x0001;"/>
-                       <key code="116" output="&#x000B;"/>
-                       <key code="117" output="&#x007F;"/>
-                       <key code="118" output="&#x0010;"/>
-                       <key code="119" output="&#x0004;"/>
-                       <key code="120" output="&#x0010;"/>
-                       <key code="121" output="&#x000C;"/>
-                       <key code="122" output="&#x0010;"/>
-                       <key code="123" output="&#x001C;"/>
-                       <key code="124" output="&#x001D;"/>
-                       <key code="125" output="&#x001F;"/>
-                       <key code="126" output="&#x001E;"/>
-               </keyMap>
-               <keyMap index="4">
-                       <key code="0" output="Å"/>
-                       <key code="1" output="Í"/>
-                       <key code="2" output="Î"/>
-                       <key code="3" output="Ï"/>
-                       <key code="4" output="Ó"/>
-                       <key code="5" output="˝"/>
-                       <key code="6" output="¸"/>
-                       <key code="7" output="˛"/>
-                       <key code="8" output="Ç"/>
-                       <key code="9" output="◊"/>
-                       <key code="10" output="±"/>
-                       <key code="11" output="ı"/>
-                       <key code="12" output="Œ"/>
-                       <key code="13" output="„"/>
-                       <key code="14" output="´"/>
-                       <key code="15" output="‰"/>
-                       <key code="16" output="Á"/>
-                       <key code="17" output="ˇ"/>
-                       <key code="18" output="⁄"/>
-                       <key code="19" output="€"/>
-                       <key code="20" output="‹"/>
-                       <key code="21" output="›"/>
-                       <key code="22" output="fl"/>
-                       <key code="23" output="fi"/>
-                       <key code="24" output="±"/>
-                       <key code="25" output="·"/>
-                       <key code="26" output="‡"/>
-                       <key code="27" output="—"/>
-                       <key code="28" output="°"/>
-                       <key code="29" output="‚"/>
-                       <key code="30" output="’"/>
-                       <key code="31" output="Ø"/>
-                       <key code="32" output="¨"/>
-                       <key code="33" output="”"/>
-                       <key code="34" output="ˆ"/>
-                       <key code="35" output="∏"/>
-                       <key code="36" output="&#x000D;"/>
-                       <key code="37" output="Ò"/>
-                       <key code="38" output="Ô"/>
-                       <key code="39" output="Æ"/>
-                       <key code="40" output=""/>
-                       <key code="41" output="Ú"/>
-                       <key code="42" output="»"/>
-                       <key code="43" output="¯"/>
-                       <key code="44" output="¿"/>
-                       <key code="45" output="˜"/>
-                       <key code="46" output="Â"/>
-                       <key code="47" output="˘"/>
-                       <key code="48" output="&#x0009;"/>
-                       <key code="49" output=" "/>
-                       <key code="50" output="`"/>
-                       <key code="51" output="&#x0008;"/>
-                       <key code="52" output="&#x0003;"/>
-                       <key code="53" output="&#x001B;"/>
-                       <key code="65" output="."/>
-                       <key code="66" output="*"/>
-                       <key code="67" output="*"/>
-                       <key code="69" output="+"/>
-                       <key code="70" output="+"/>
-                       <key code="71" output="&#x001B;"/>
-                       <key code="72" output="="/>
-                       <key code="75" output="/"/>
-                       <key code="76" output="&#x0003;"/>
-                       <key code="77" output="/"/>
-                       <key code="78" output="-"/>
-                       <key code="81" output="="/>
-                       <key code="82" output="0"/>
-                       <key code="83" output="1"/>
-                       <key code="84" output="2"/>
-                       <key code="85" output="3"/>
-                       <key code="86" output="4"/>
-                       <key code="87" output="5"/>
-                       <key code="88" output="6"/>
-                       <key code="89" output="7"/>
-                       <key code="91" output="8"/>
-                       <key code="92" output="9"/>
-                       <key code="96" output="&#x0010;"/>
-                       <key code="97" output="&#x0010;"/>
-                       <key code="98" output="&#x0010;"/>
-                       <key code="99" output="&#x0010;"/>
-                       <key code="100" output="&#x0010;"/>
-                       <key code="101" output="&#x0010;"/>
-                       <key code="102" output="&#x0010;"/>
-                       <key code="103" output="&#x0010;"/>
-                       <key code="104" output="&#x0010;"/>
-                       <key code="105" output="&#x0010;"/>
-                       <key code="106" output="&#x0010;"/>
-                       <key code="107" output="&#x0010;"/>
-                       <key code="108" output="&#x0010;"/>
-                       <key code="109" output="&#x0010;"/>
-                       <key code="110" output="&#x0010;"/>
-                       <key code="111" output="&#x0010;"/>
-                       <key code="112" output="&#x0010;"/>
-                       <key code="113" output="&#x0010;"/>
-                       <key code="114" output="&#x0005;"/>
-                       <key code="115" output="&#x0001;"/>
-                       <key code="116" output="&#x000B;"/>
-                       <key code="117" output="&#x007F;"/>
-                       <key code="118" output="&#x0010;"/>
-                       <key code="119" output="&#x0004;"/>
-                       <key code="120" output="&#x0010;"/>
-                       <key code="121" output="&#x000C;"/>
-                       <key code="122" output="&#x0010;"/>
-                       <key code="123" output="&#x001C;"/>
-                       <key code="124" output="&#x001D;"/>
-                       <key code="125" output="&#x001F;"/>
-                       <key code="126" output="&#x001E;"/>
-               </keyMap>
-               <keyMap index="5">
-                       <key code="0" output="Å"/>
-                       <key code="1" output="Í"/>
-                       <key code="2" output="Î"/>
-                       <key code="3" output="Ï"/>
-                       <key code="4" output="Ó"/>
-                       <key code="5" output="©"/>
-                       <key code="6" output="Ω"/>
-                       <key code="7" output="≈"/>
-                       <key code="8" output="Ç"/>
-                       <key code="9" output="√"/>
-                       <key code="10" output="§"/>
-                       <key code="11" output="ı"/>
-                       <key code="12" output="Œ"/>
-                       <key code="13" output="∑"/>
-                       <key code="14" output="´"/>
-                       <key code="15" output="®"/>
-                       <key code="16" output="Á"/>
-                       <key code="17" output="†"/>
-                       <key code="18" output="¡"/>
-                       <key code="19" output="™"/>
-                       <key code="20" output="£"/>
-                       <key code="21" output="¢"/>
-                       <key code="22" output="§"/>
-                       <key code="23" output="∞"/>
-                       <key code="24" output="≠"/>
-                       <key code="25" output="ª"/>
-                       <key code="26" output="¶"/>
-                       <key code="27" output="–"/>
-                       <key code="28" output="•"/>
-                       <key code="29" output="º"/>
-                       <key code="30" output="‘"/>
-                       <key code="31" output="Ø"/>
-                       <key code="32" output="¨"/>
-                       <key code="33" output="“"/>
-                       <key code="34" output="ˆ"/>
-                       <key code="35" output="∏"/>
-                       <key code="36" output="&#x000D;"/>
-                       <key code="37" output="Ò"/>
-                       <key code="38" output="Ô"/>
-                       <key code="39" output="Æ"/>
-                       <key code="40" output="˚"/>
-                       <key code="41" output="…"/>
-                       <key code="42" output="«"/>
-                       <key code="43" output="≤"/>
-                       <key code="44" output="÷"/>
-                       <key code="45" output="˜"/>
-                       <key code="46" output="Â"/>
-                       <key code="47" output="≥"/>
-                       <key code="48" output="&#x0009;"/>
-                       <key code="49" output=" "/>
-                       <key code="50" output="`"/>
-                       <key code="51" output="&#x0008;"/>
-                       <key code="52" output="&#x0003;"/>
-                       <key code="53" output="&#x001B;"/>
-                       <key code="65" output="."/>
-                       <key code="66" output="&#x001D;"/>
-                       <key code="67" output="*"/>
-                       <key code="69" output="+"/>
-                       <key code="70" output="&#x001C;"/>
-                       <key code="71" output="&#x001B;"/>
-                       <key code="72" output="&#x001F;"/>
-                       <key code="75" output="/"/>
-                       <key code="76" output="&#x0003;"/>
-                       <key code="77" output="&#x001E;"/>
-                       <key code="78" output="-"/>
-                       <key code="81" output="="/>
-                       <key code="82" output="0"/>
-                       <key code="83" output="1"/>
-                       <key code="84" output="2"/>
-                       <key code="85" output="3"/>
-                       <key code="86" output="4"/>
-                       <key code="87" output="5"/>
-                       <key code="88" output="6"/>
-                       <key code="89" output="7"/>
-                       <key code="91" output="8"/>
-                       <key code="92" output="9"/>
-                       <key code="96" output="&#x0010;"/>
-                       <key code="97" output="&#x0010;"/>
-                       <key code="98" output="&#x0010;"/>
-                       <key code="99" output="&#x0010;"/>
-                       <key code="100" output="&#x0010;"/>
-                       <key code="101" output="&#x0010;"/>
-                       <key code="102" output="&#x0010;"/>
-                       <key code="103" output="&#x0010;"/>
-                       <key code="104" output="&#x0010;"/>
-                       <key code="105" output="&#x0010;"/>
-                       <key code="106" output="&#x0010;"/>
-                       <key code="107" output="&#x0010;"/>
-                       <key code="108" output="&#x0010;"/>
-                       <key code="109" output="&#x0010;"/>
-                       <key code="110" output="&#x0010;"/>
-                       <key code="111" output="&#x0010;"/>
-                       <key code="112" output="&#x0010;"/>
-                       <key code="113" output="&#x0010;"/>
-                       <key code="114" output="&#x0005;"/>
-                       <key code="115" output="&#x0001;"/>
-                       <key code="116" output="&#x000B;"/>
-                       <key code="117" output="&#x007F;"/>
-                       <key code="118" output="&#x0010;"/>
-                       <key code="119" output="&#x0004;"/>
-                       <key code="120" output="&#x0010;"/>
-                       <key code="121" output="&#x000C;"/>
-                       <key code="122" output="&#x0010;"/>
-                       <key code="123" output="&#x001C;"/>
-                       <key code="124" output="&#x001D;"/>
-                       <key code="125" output="&#x001F;"/>
-                       <key code="126" output="&#x001E;"/>
-               </keyMap>
-               <keyMap index="6">
-                       <key code="0" output="å"/>
-                       <key code="1" output="ß"/>
-                       <key code="2" output="∂"/>
-                       <key code="3" output="ƒ"/>
-                       <key code="4" output="˙"/>
-                       <key code="5" output="©"/>
-                       <key code="6" output="Ω"/>
-                       <key code="7" output="≈"/>
-                       <key code="8" output="ç"/>
-                       <key code="9" output="√"/>
-                       <key code="10" output="§"/>
-                       <key code="11" output="∫"/>
-                       <key code="12" output="œ"/>
-                       <key code="13" output="∑"/>
-                       <key code="14" output="´"/>
-                       <key code="15" output="®"/>
-                       <key code="16" output="¥"/>
-                       <key code="17" output="†"/>
-                       <key code="18" output="¡"/>
-                       <key code="19" output="™"/>
-                       <key code="20" output="£"/>
-                       <key code="21" output="¢"/>
-                       <key code="22" output="§"/>
-                       <key code="23" output="∞"/>
-                       <key code="24" output="≠"/>
-                       <key code="25" output="ª"/>
-                       <key code="26" output="¶"/>
-                       <key code="27" output="–"/>
-                       <key code="28" output="•"/>
-                       <key code="29" output="º"/>
-                       <key code="30" output="‘"/>
-                       <key code="31" output="ø"/>
-                       <key code="32" output="¨"/>
-                       <key code="33" output="“"/>
-                       <key code="34" output="^"/>
-                       <key code="35" output="π"/>
-                       <key code="36" output="&#x000D;"/>
-                       <key code="37" output="¬"/>
-                       <key code="38" output="∆"/>
-                       <key code="39" output="æ"/>
-                       <key code="40" output="˚"/>
-                       <key code="41" output="…"/>
-                       <key code="42" output="«"/>
-                       <key code="43" output="≤"/>
-                       <key code="44" output="÷"/>
-                       <key code="45" output="~"/>
-                       <key code="46" output="µ"/>
-                       <key code="47" output="≥"/>
-                       <key code="48" output="&#x0009;"/>
-                       <key code="49" output=" "/>
-                       <key code="50" output="`"/>
-                       <key code="51" output="&#x0008;"/>
-                       <key code="52" output="&#x0003;"/>
-                       <key code="53" output="&#x001B;"/>
-                       <key code="65" output="."/>
-                       <key code="66" output="&#x001D;"/>
-                       <key code="67" output="*"/>
-                       <key code="69" output="+"/>
-                       <key code="70" output="&#x001C;"/>
-                       <key code="71" output="&#x001B;"/>
-                       <key code="72" output="&#x001F;"/>
-                       <key code="75" output="/"/>
-                       <key code="76" output="&#x0003;"/>
-                       <key code="77" output="&#x001E;"/>
-                       <key code="78" output="-"/>
-                       <key code="81" output="="/>
-                       <key code="82" output="0"/>
-                       <key code="83" output="1"/>
-                       <key code="84" output="2"/>
-                       <key code="85" output="3"/>
-                       <key code="86" output="4"/>
-                       <key code="87" output="5"/>
-                       <key code="88" output="6"/>
-                       <key code="89" output="7"/>
-                       <key code="91" output="8"/>
-                       <key code="92" output="9"/>
-                       <key code="96" output="&#x0010;"/>
-                       <key code="97" output="&#x0010;"/>
-                       <key code="98" output="&#x0010;"/>
-                       <key code="99" output="&#x0010;"/>
-                       <key code="100" output="&#x0010;"/>
-                       <key code="101" output="&#x0010;"/>
-                       <key code="102" output="&#x0010;"/>
-                       <key code="103" output="&#x0010;"/>
-                       <key code="104" output="&#x0010;"/>
-                       <key code="105" output="&#x0010;"/>
-                       <key code="106" output="&#x0010;"/>
-                       <key code="107" output="&#x0010;"/>
-                       <key code="108" output="&#x0010;"/>
-                       <key code="109" output="&#x0010;"/>
-                       <key code="110" output="&#x0010;"/>
-                       <key code="111" output="&#x0010;"/>
-                       <key code="112" output="&#x0010;"/>
-                       <key code="113" output="&#x0010;"/>
-                       <key code="114" output="&#x0005;"/>
-                       <key code="115" output="&#x0001;"/>
-                       <key code="116" output="&#x000B;"/>
-                       <key code="117" output="&#x007F;"/>
-                       <key code="118" output="&#x0010;"/>
-                       <key code="119" output="&#x0004;"/>
-                       <key code="120" output="&#x0010;"/>
-                       <key code="121" output="&#x000C;"/>
-                       <key code="122" output="&#x0010;"/>
-                       <key code="123" output="&#x001C;"/>
-                       <key code="124" output="&#x001D;"/>
-                       <key code="125" output="&#x001F;"/>
-                       <key code="126" output="&#x001E;"/>
-               </keyMap>
-               <keyMap index="7">
-                       <key code="0" output="&#x0001;"/>
-                       <key code="1" output="&#x0013;"/>
-                       <key code="2" output="&#x0004;"/>
-                       <key code="3" output="&#x0006;"/>
-                       <key code="4" output="&#x0008;"/>
-                       <key code="5" output="&#x0007;"/>
-                       <key code="6" output="&#x001A;"/>
-                       <key code="7" output="&#x0018;"/>
-                       <key code="8" output="&#x0003;"/>
-                       <key code="9" output="&#x0016;"/>
-                       <key code="10" output="0"/>
-                       <key code="11" output="&#x0002;"/>
-                       <key code="12" output="&#x0011;"/>
-                       <key code="13" output="&#x0017;"/>
-                       <key code="14" output="&#x0005;"/>
-                       <key code="15" output="&#x0012;"/>
-                       <key code="16" output="&#x0019;"/>
-                       <key code="17" output="&#x0014;"/>
-                       <key code="18" output="1"/>
-                       <key code="19" output="2"/>
-                       <key code="20" output="3"/>
-                       <key code="21" output="4"/>
-                       <key code="22" output="6"/>
-                       <key code="23" output="5"/>
-                       <key code="24" output="="/>
-                       <key code="25" output="9"/>
-                       <key code="26" output="7"/>
-                       <key code="27" output="&#x001F;"/>
-                       <key code="28" output="8"/>
-                       <key code="29" output="0"/>
-                       <key code="30" output="&#x001D;"/>
-                       <key code="31" output="&#x000F;"/>
-                       <key code="32" output="&#x0015;"/>
-                       <key code="33" output="&#x001B;"/>
-                       <key code="34" output="&#x0009;"/>
-                       <key code="35" output="&#x0010;"/>
-                       <key code="36" output="&#x000D;"/>
-                       <key code="37" output="&#x000C;"/>
-                       <key code="38" output="&#x000A;"/>
-                       <key code="39" output="&#x0027;"/>
-                       <key code="40" output="&#x000B;"/>
-                       <key code="41" output=";"/>
-                       <key code="42" output="&#x001C;"/>
-                       <key code="43" output=","/>
-                       <key code="44" output="/"/>
-                       <key code="45" output="&#x000E;"/>
-                       <key code="46" output="&#x000D;"/>
-                       <key code="47" output="."/>
-                       <key code="48" output="&#x0009;"/>
-                       <key code="49" action="5"/>
-                       <key code="50" output="`"/>
-                       <key code="51" output="&#x0008;"/>
-                       <key code="52" output="&#x0003;"/>
-                       <key code="53" output="&#x001B;"/>
-                       <key code="65" output="."/>
-                       <key code="66" output="&#x001D;"/>
-                       <key code="67" output="*"/>
-                       <key code="69" output="+"/>
-                       <key code="70" output="&#x001C;"/>
-                       <key code="71" output="&#x001B;"/>
-                       <key code="72" output="&#x001F;"/>
-                       <key code="75" output="/"/>
-                       <key code="76" output="&#x0003;"/>
-                       <key code="77" output="&#x001E;"/>
-                       <key code="78" output="-"/>
-                       <key code="81" output="="/>
-                       <key code="82" output="0"/>
-                       <key code="83" output="1"/>
-                       <key code="84" output="2"/>
-                       <key code="85" output="3"/>
-                       <key code="86" output="4"/>
-                       <key code="87" output="5"/>
-                       <key code="88" output="6"/>
-                       <key code="89" output="7"/>
-                       <key code="91" output="8"/>
-                       <key code="92" output="9"/>
-                       <key code="96" output="&#x0010;"/>
-                       <key code="97" output="&#x0010;"/>
-                       <key code="98" output="&#x0010;"/>
-                       <key code="99" output="&#x0010;"/>
-                       <key code="100" output="&#x0010;"/>
-                       <key code="101" output="&#x0010;"/>
-                       <key code="102" output="&#x0010;"/>
-                       <key code="103" output="&#x0010;"/>
-                       <key code="104" output="&#x0010;"/>
-                       <key code="105" output="&#x0010;"/>
-                       <key code="106" output="&#x0010;"/>
-                       <key code="107" output="&#x0010;"/>
-                       <key code="108" output="&#x0010;"/>
-                       <key code="109" output="&#x0010;"/>
-                       <key code="110" output="&#x0010;"/>
-                       <key code="111" output="&#x0010;"/>
-                       <key code="112" output="&#x0010;"/>
-                       <key code="113" output="&#x0010;"/>
-                       <key code="114" output="&#x0005;"/>
-                       <key code="115" output="&#x0001;"/>
-                       <key code="116" output="&#x000B;"/>
-                       <key code="117" output="&#x007F;"/>
-                       <key code="118" output="&#x0010;"/>
-                       <key code="119" output="&#x0004;"/>
-                       <key code="120" output="&#x0010;"/>
-                       <key code="121" output="&#x000C;"/>
-                       <key code="122" output="&#x0010;"/>
-                       <key code="123" output="&#x001C;"/>
-                       <key code="124" output="&#x001D;"/>
-                       <key code="125" output="&#x001F;"/>
-                       <key code="126" output="&#x001E;"/>
-               </keyMap>
-       </keyMapSet>
-       <keyMapSet id="984">
-               <keyMap index="0" baseMapSet="16c" baseIndex="0">
-                       <key code="24" output="^"/>
-                       <key code="30" output="["/>
-                       <key code="33" output="@"/>
-                       <key code="39" output=":"/>
-                       <key code="42" output="]"/>
-                       <key code="93" output="¥"/>
-                       <key code="94" output="_"/>
-                       <key code="95" output=","/>
-                       <key code="102" action="5"/>
-                       <key code="104" action="5"/>
-               </keyMap>
-               <keyMap index="1" baseMapSet="16c" baseIndex="1">
-                       <key code="19" output="&#x0022;"/>
-                       <key code="22" output="&#x0026;"/>
-                       <key code="24" output="~"/>
-                       <key code="25" output=")"/>
-                       <key code="26" output="&#x0027;"/>
-                       <key code="27" output="="/>
-                       <key code="28" output="("/>
-                       <key code="29" output="0"/>
-                       <key code="30" output="{"/>
-                       <key code="33" output="`"/>
-                       <key code="39" output="*"/>
-                       <key code="41" output="+"/>
-                       <key code="42" output="}"/>
-                       <key code="93" output="|"/>
-                       <key code="94" output="_"/>
-                       <key code="95" output=","/>
-                       <key code="102" action="5"/>
-                       <key code="104" action="5"/>
-               </keyMap>
-               <keyMap index="2" baseMapSet="16c" baseIndex="2">
-                       <key code="24" output="^"/>
-                       <key code="30" output="["/>
-                       <key code="33" output="@"/>
-                       <key code="39" output=":"/>
-                       <key code="42" output="]"/>
-                       <key code="93" output="¥"/>
-                       <key code="94" output="_"/>
-                       <key code="95" output=","/>
-                       <key code="102" action="5"/>
-                       <key code="104" action="5"/>
-               </keyMap>
-               <keyMap index="3" baseMapSet="16c" baseIndex="3">
-                       <key code="93" output="\"/>
-                       <key code="94" action="1"/>
-                       <key code="95" output=","/>
-                       <key code="102" action="5"/>
-                       <key code="104" action="5"/>
-               </keyMap>
-               <keyMap index="4" baseMapSet="16c" baseIndex="4">
-                       <key code="93" output="|"/>
-                       <key code="94" output="`"/>
-                       <key code="95" output=","/>
-                       <key code="102" action="5"/>
-                       <key code="104" action="5"/>
-               </keyMap>
-               <keyMap index="5" baseMapSet="16c" baseIndex="5">
-                       <key code="93" output="\"/>
-                       <key code="94" output="`"/>
-                       <key code="95" output=","/>
-                       <key code="102" action="5"/>
-                       <key code="104" action="5"/>
-               </keyMap>
-               <keyMap index="6" baseMapSet="16c" baseIndex="6">
-                       <key code="93" output="\"/>
-                       <key code="94" output="_"/>
-                       <key code="95" output=","/>
-                       <key code="102" action="5"/>
-                       <key code="104" action="5"/>
-               </keyMap>
-               <keyMap index="7" baseMapSet="16c" baseIndex="7">
-                       <key code="93" output="|"/>
-                       <key code="94" output="_"/>
-                       <key code="95" output=","/>
-                       <key code="102" action="5"/>
-                       <key code="104" action="5"/>
-               </keyMap>
-       </keyMapSet>
-       <actions>
-               <action id="&#x0022;">
-                       <when state="none" output="&#x0022;"/>
-                       <when state="6" output="Æ"/>
-               </action>
-               <action id="&#x0027;">
-                       <when state="none" output="&#x0027;"/>
-                       <when state="6" output="æ"/>
-               </action>
-               <action id="0">
-                       <when state="none" next="1"/>
-               </action>
-               <action id="1">
-                       <when state="none" next="2"/>
-               </action>
-               <action id="10">
-                       <when state="none" output="O"/>
-                       <when state="1" output="Ó"/>
-                       <when state="2" output="Ò"/>
-                       <when state="3" output="Ô"/>
-                       <when state="4" output="Ö"/>
-                       <when state="5" output="Õ"/>
-                       <when state="6" output="Ø"/>
-               </action>
-               <action id="11">
-                       <when state="none" output="U"/>
-                       <when state="1" output="Ú"/>
-                       <when state="2" output="Ù"/>
-                       <when state="3" output="Û"/>
-                       <when state="4" output="Ü"/>
-                       <when state="6" output="Ö"/>
-               </action>
-               <action id="12">
-                       <when state="none" output="Y"/>
-                       <when state="4" output="Ÿ"/>
-               </action>
-               <action id="13">
-                       <when state="none" output="a"/>
-                       <when state="1" output="á"/>
-                       <when state="2" output="à"/>
-                       <when state="3" output="â"/>
-                       <when state="4" output="ä"/>
-                       <when state="5" output="ã"/>
-                       <when state="6" output="å"/>
-               </action>
-               <action id="14">
-                       <when state="none" output="e"/>
-                       <when state="1" output="é"/>
-                       <when state="2" output="è"/>
-                       <when state="3" output="ê"/>
-                       <when state="4" output="ë"/>
-                       <when state="6" output="ä"/>
-               </action>
-               <action id="15">
-                       <when state="none" output="i"/>
-                       <when state="1" output="í"/>
-                       <when state="2" output="ì"/>
-                       <when state="3" output="î"/>
-                       <when state="4" output="ï"/>
-               </action>
-               <action id="16">
-                       <when state="none" output="n"/>
-                       <when state="5" output="ñ"/>
-               </action>
-               <action id="17">
-                       <when state="none" output="o"/>
-                       <when state="1" output="ó"/>
-                       <when state="2" output="ò"/>
-                       <when state="3" output="ô"/>
-                       <when state="4" output="ö"/>
-                       <when state="5" output="õ"/>
-                       <when state="6" output="ø"/>
-               </action>
-               <action id="18">
-                       <when state="none" output="u"/>
-                       <when state="1" output="ú"/>
-                       <when state="2" output="ù"/>
-                       <when state="3" output="û"/>
-                       <when state="4" output="ü"/>
-                       <when state="6" output="ö"/>
-               </action>
-               <action id="19">
-                       <when state="none" output="y"/>
-                       <when state="4" output="ÿ"/>
-               </action>
-               <action id="2">
-                       <when state="none" next="3"/>
-               </action>
-               <action id="3">
-                       <when state="none" next="4"/>
-               </action>
-               <action id="4">
-                       <when state="none" next="5"/>
-               </action>
-               <action id="5">
-                       <when state="none" output=" "/>
-                       <when state="1" output="´"/>
-                       <when state="2" output="`"/>
-                       <when state="3" output="ˆ"/>
-                       <when state="4" output="¨"/>
-                       <when state="5" output="˜"/>
-               </action>
-               <action id="6">
-                       <when state="none" output="A"/>
-                       <when state="1" output="Á"/>
-                       <when state="2" output="À"/>
-                       <when state="3" output="Â"/>
-                       <when state="4" output="Ä"/>
-                       <when state="5" output="Ã"/>
-                       <when state="6" output="Å"/>
-               </action>
-               <action id="7">
-                       <when state="none" output="E"/>
-                       <when state="1" output="É"/>
-                       <when state="2" output="È"/>
-                       <when state="3" output="Ê"/>
-                       <when state="4" output="Ë"/>
-                       <when state="6" output="Ä"/>
-               </action>
-               <action id="8">
-                       <when state="none" output="I"/>
-                       <when state="1" output="Í"/>
-                       <when state="2" output="Ì"/>
-                       <when state="3" output="Î"/>
-                       <when state="4" output="Ï"/>
-               </action>
-               <action id="9">
-                       <when state="none" output="N"/>
-                       <when state="5" output="Ñ"/>
-               </action>
-               <action id="`">
-                       <when state="none" next="6"/>
-               </action>
-       </actions>
-       <terminators>
-               <when state="1" output="´"/>
-               <when state="2" output="`"/>
-               <when state="3" output="ˆ"/>
-               <when state="4" output="¨"/>
-               <when state="5" output="˜"/>
-               <when state="6" output="`"/>
-       </terminators>
-</keyboard>
+<?xml version="1.1" encoding="UTF-8"?>\r
+<!DOCTYPE keyboard SYSTEM "file://localhost/System/Library/DTDs/KeyboardLayout.dtd">\r
+<!--Last edited by Ukelele version 3.0.3.70 on 2016-05-09 at 20:51 (GMT+2)-->\r
+<keyboard group="126" id="-18679" name="U.S.Denmark" maxout="1">\r
+       <layouts>\r
+               <layout first="0" last="17" mapSet="16c" modifiers="f4"/>\r
+               <layout first="18" last="18" mapSet="984" modifiers="f4"/>\r
+               <layout first="21" last="23" mapSet="984" modifiers="f4"/>\r
+               <layout first="30" last="30" mapSet="984" modifiers="f4"/>\r
+               <layout first="194" last="194" mapSet="984" modifiers="f4"/>\r
+               <layout first="197" last="197" mapSet="984" modifiers="f4"/>\r
+               <layout first="200" last="201" mapSet="984" modifiers="f4"/>\r
+               <layout first="206" last="207" mapSet="984" modifiers="f4"/>\r
+       </layouts>\r
+       <modifierMap id="f4" defaultIndex="7">\r
+               <keyMapSelect mapIndex="0">\r
+                       <modifier keys="command?"/>\r
+                       <modifier keys="anyShift? caps? command"/>\r
+               </keyMapSelect>\r
+               <keyMapSelect mapIndex="1">\r
+                       <modifier keys="anyShift caps?"/>\r
+               </keyMapSelect>\r
+               <keyMapSelect mapIndex="2">\r
+                       <modifier keys="caps"/>\r
+               </keyMapSelect>\r
+               <keyMapSelect mapIndex="3">\r
+                       <modifier keys="anyOption"/>\r
+               </keyMapSelect>\r
+               <keyMapSelect mapIndex="4">\r
+                       <modifier keys="anyShift caps? anyOption command?"/>\r
+               </keyMapSelect>\r
+               <keyMapSelect mapIndex="5">\r
+                       <modifier keys="caps anyOption"/>\r
+               </keyMapSelect>\r
+               <keyMapSelect mapIndex="6">\r
+                       <modifier keys="caps? anyOption command"/>\r
+               </keyMapSelect>\r
+               <keyMapSelect mapIndex="7">\r
+                       <modifier keys="anyShift caps? option? command? control"/>\r
+                       <modifier keys="shift? caps? anyOption command? control"/>\r
+                       <modifier keys="caps? anyOption? command? control"/>\r
+               </keyMapSelect>\r
+       </modifierMap>\r
+       <keyMapSet id="16c">\r
+               <keyMap index="0">\r
+                       <key code="0" action="13"/>\r
+                       <key code="1" output="s"/>\r
+                       <key code="2" output="d"/>\r
+                       <key code="3" output="f"/>\r
+                       <key code="4" output="h"/>\r
+                       <key code="5" output="g"/>\r
+                       <key code="6" output="z"/>\r
+                       <key code="7" output="x"/>\r
+                       <key code="8" output="c"/>\r
+                       <key code="9" output="v"/>\r
+                       <key code="10" output="§"/>\r
+                       <key code="11" output="b"/>\r
+                       <key code="12" output="q"/>\r
+                       <key code="13" output="w"/>\r
+                       <key code="14" action="14"/>\r
+                       <key code="15" output="r"/>\r
+                       <key code="16" action="19"/>\r
+                       <key code="17" output="t"/>\r
+                       <key code="18" output="1"/>\r
+                       <key code="19" output="2"/>\r
+                       <key code="20" output="3"/>\r
+                       <key code="21" output="4"/>\r
+                       <key code="22" output="6"/>\r
+                       <key code="23" output="5"/>\r
+                       <key code="24" output="="/>\r
+                       <key code="25" output="9"/>\r
+                       <key code="26" output="7"/>\r
+                       <key code="27" output="-"/>\r
+                       <key code="28" output="8"/>\r
+                       <key code="29" output="0"/>\r
+                       <key code="30" output="]"/>\r
+                       <key code="31" action="17"/>\r
+                       <key code="32" action="18"/>\r
+                       <key code="33" output="["/>\r
+                       <key code="34" action="15"/>\r
+                       <key code="35" output="p"/>\r
+                       <key code="36" output="&#x000D;"/>\r
+                       <key code="37" output="l"/>\r
+                       <key code="38" output="j"/>\r
+                       <key code="39" action="&#x0027;"/>\r
+                       <key code="40" output="k"/>\r
+                       <key code="41" output=";"/>\r
+                       <key code="42" output="\"/>\r
+                       <key code="43" output=","/>\r
+                       <key code="44" output="/"/>\r
+                       <key code="45" action="16"/>\r
+                       <key code="46" output="m"/>\r
+                       <key code="47" output="."/>\r
+                       <key code="48" output="&#x0009;"/>\r
+                       <key code="49" action="5"/>\r
+                       <key code="50" action="`"/>\r
+                       <key code="51" output="&#x0008;"/>\r
+                       <key code="52" output="&#x0003;"/>\r
+                       <key code="53" output="&#x001B;"/>\r
+                       <key code="56" output=""/>\r
+                       <key code="57" output=""/>\r
+                       <key code="65" output="."/>\r
+                       <key code="66" output="&#x001D;"/>\r
+                       <key code="67" output="*"/>\r
+                       <key code="69" output="+"/>\r
+                       <key code="70" output="&#x001C;"/>\r
+                       <key code="71" output="&#x001B;"/>\r
+                       <key code="72" output="&#x001F;"/>\r
+                       <key code="75" output="/"/>\r
+                       <key code="76" output="&#x0003;"/>\r
+                       <key code="77" output="&#x001E;"/>\r
+                       <key code="78" output="-"/>\r
+                       <key code="81" output="="/>\r
+                       <key code="82" output="0"/>\r
+                       <key code="83" output="1"/>\r
+                       <key code="84" output="2"/>\r
+                       <key code="85" output="3"/>\r
+                       <key code="86" output="4"/>\r
+                       <key code="87" output="5"/>\r
+                       <key code="88" output="6"/>\r
+                       <key code="89" output="7"/>\r
+                       <key code="91" output="8"/>\r
+                       <key code="92" output="9"/>\r
+                       <key code="96" output="&#x0010;"/>\r
+                       <key code="97" output="&#x0010;"/>\r
+                       <key code="98" output="&#x0010;"/>\r
+                       <key code="99" output="&#x0010;"/>\r
+                       <key code="100" output="&#x0010;"/>\r
+                       <key code="101" output="&#x0010;"/>\r
+                       <key code="102" output="&#x0010;"/>\r
+                       <key code="103" output="&#x0010;"/>\r
+                       <key code="104" output="&#x0010;"/>\r
+                       <key code="105" output="&#x0010;"/>\r
+                       <key code="106" output="&#x0010;"/>\r
+                       <key code="107" output="&#x0010;"/>\r
+                       <key code="108" output="&#x0010;"/>\r
+                       <key code="109" output="&#x0010;"/>\r
+                       <key code="110" output="&#x0010;"/>\r
+                       <key code="111" output="&#x0010;"/>\r
+                       <key code="112" output="&#x0010;"/>\r
+                       <key code="113" output="&#x0010;"/>\r
+                       <key code="114" output="&#x0005;"/>\r
+                       <key code="115" output="&#x0001;"/>\r
+                       <key code="116" output="&#x000B;"/>\r
+                       <key code="117" output="&#x007F;"/>\r
+                       <key code="118" output="&#x0010;"/>\r
+                       <key code="119" output="&#x0004;"/>\r
+                       <key code="120" output="&#x0010;"/>\r
+                       <key code="121" output="&#x000C;"/>\r
+                       <key code="122" output="&#x0010;"/>\r
+                       <key code="123" output="&#x001C;"/>\r
+                       <key code="124" output="&#x001D;"/>\r
+                       <key code="125" output="&#x001F;"/>\r
+                       <key code="126" output="&#x001E;"/>\r
+               </keyMap>\r
+               <keyMap index="1">\r
+                       <key code="0" action="6"/>\r
+                       <key code="1" output="S"/>\r
+                       <key code="2" output="D"/>\r
+                       <key code="3" output="F"/>\r
+                       <key code="4" output="H"/>\r
+                       <key code="5" output="G"/>\r
+                       <key code="6" output="Z"/>\r
+                       <key code="7" output="X"/>\r
+                       <key code="8" output="C"/>\r
+                       <key code="9" output="V"/>\r
+                       <key code="10" output="±"/>\r
+                       <key code="11" output="B"/>\r
+                       <key code="12" output="Q"/>\r
+                       <key code="13" output="W"/>\r
+                       <key code="14" action="7"/>\r
+                       <key code="15" output="R"/>\r
+                       <key code="16" action="12"/>\r
+                       <key code="17" output="T"/>\r
+                       <key code="18" output="!"/>\r
+                       <key code="19" output="@"/>\r
+                       <key code="20" output="#"/>\r
+                       <key code="21" output="$"/>\r
+                       <key code="22" output="^"/>\r
+                       <key code="23" output="%"/>\r
+                       <key code="24" output="+"/>\r
+                       <key code="25" output="("/>\r
+                       <key code="26" output="&#x0026;"/>\r
+                       <key code="27" output="_"/>\r
+                       <key code="28" output="*"/>\r
+                       <key code="29" output=")"/>\r
+                       <key code="30" output="}"/>\r
+                       <key code="31" action="10"/>\r
+                       <key code="32" action="11"/>\r
+                       <key code="33" output="{"/>\r
+                       <key code="34" action="8"/>\r
+                       <key code="35" output="P"/>\r
+                       <key code="36" output="&#x000D;"/>\r
+                       <key code="37" output="L"/>\r
+                       <key code="38" output="J"/>\r
+                       <key code="39" action="&#x0022;"/>\r
+                       <key code="40" output="K"/>\r
+                       <key code="41" output=":"/>\r
+                       <key code="42" output="|"/>\r
+                       <key code="43" output="&#x003C;"/>\r
+                       <key code="44" output="?"/>\r
+                       <key code="45" action="9"/>\r
+                       <key code="46" output="M"/>\r
+                       <key code="47" output="&#x003E;"/>\r
+                       <key code="48" output="&#x0009;"/>\r
+                       <key code="49" action="5"/>\r
+                       <key code="50" output="~"/>\r
+                       <key code="51" output="&#x0008;"/>\r
+                       <key code="52" output="&#x0003;"/>\r
+                       <key code="53" output="&#x001B;"/>\r
+                       <key code="65" output="."/>\r
+                       <key code="66" output="*"/>\r
+                       <key code="67" output="*"/>\r
+                       <key code="69" output="+"/>\r
+                       <key code="70" output="+"/>\r
+                       <key code="71" output="&#x001B;"/>\r
+                       <key code="72" output="="/>\r
+                       <key code="75" output="/"/>\r
+                       <key code="76" output="&#x0003;"/>\r
+                       <key code="77" output="/"/>\r
+                       <key code="78" output="-"/>\r
+                       <key code="81" output="="/>\r
+                       <key code="82" output="0"/>\r
+                       <key code="83" output="1"/>\r
+                       <key code="84" output="2"/>\r
+                       <key code="85" output="3"/>\r
+                       <key code="86" output="4"/>\r
+                       <key code="87" output="5"/>\r
+                       <key code="88" output="6"/>\r
+                       <key code="89" output="7"/>\r
+                       <key code="91" output="8"/>\r
+                       <key code="92" output="9"/>\r
+                       <key code="96" output="&#x0010;"/>\r
+                       <key code="97" output="&#x0010;"/>\r
+                       <key code="98" output="&#x0010;"/>\r
+                       <key code="99" output="&#x0010;"/>\r
+                       <key code="100" output="&#x0010;"/>\r
+                       <key code="101" output="&#x0010;"/>\r
+                       <key code="102" output="&#x0010;"/>\r
+                       <key code="103" output="&#x0010;"/>\r
+                       <key code="104" output="&#x0010;"/>\r
+                       <key code="105" output="&#x0010;"/>\r
+                       <key code="106" output="&#x0010;"/>\r
+                       <key code="107" output="&#x0010;"/>\r
+                       <key code="108" output="&#x0010;"/>\r
+                       <key code="109" output="&#x0010;"/>\r
+                       <key code="110" output="&#x0010;"/>\r
+                       <key code="111" output="&#x0010;"/>\r
+                       <key code="112" output="&#x0010;"/>\r
+                       <key code="113" output="&#x0010;"/>\r
+                       <key code="114" output="&#x0005;"/>\r
+                       <key code="115" output="&#x0001;"/>\r
+                       <key code="116" output="&#x000B;"/>\r
+                       <key code="117" output="&#x007F;"/>\r
+                       <key code="118" output="&#x0010;"/>\r
+                       <key code="119" output="&#x0004;"/>\r
+                       <key code="120" output="&#x0010;"/>\r
+                       <key code="121" output="&#x000C;"/>\r
+                       <key code="122" output="&#x0010;"/>\r
+                       <key code="123" output="&#x001C;"/>\r
+                       <key code="124" output="&#x001D;"/>\r
+                       <key code="125" output="&#x001F;"/>\r
+                       <key code="126" output="&#x001E;"/>\r
+               </keyMap>\r
+               <keyMap index="2">\r
+                       <key code="0" action="6"/>\r
+                       <key code="1" output="S"/>\r
+                       <key code="2" output="D"/>\r
+                       <key code="3" output="F"/>\r
+                       <key code="4" output="H"/>\r
+                       <key code="5" output="G"/>\r
+                       <key code="6" output="Z"/>\r
+                       <key code="7" output="X"/>\r
+                       <key code="8" output="C"/>\r
+                       <key code="9" output="V"/>\r
+                       <key code="10" output="§"/>\r
+                       <key code="11" output="B"/>\r
+                       <key code="12" output="Q"/>\r
+                       <key code="13" output="W"/>\r
+                       <key code="14" action="7"/>\r
+                       <key code="15" output="R"/>\r
+                       <key code="16" action="12"/>\r
+                       <key code="17" output="T"/>\r
+                       <key code="18" output="1"/>\r
+                       <key code="19" output="2"/>\r
+                       <key code="20" output="3"/>\r
+                       <key code="21" output="4"/>\r
+                       <key code="22" output="6"/>\r
+                       <key code="23" output="5"/>\r
+                       <key code="24" output="="/>\r
+                       <key code="25" output="9"/>\r
+                       <key code="26" output="7"/>\r
+                       <key code="27" output="-"/>\r
+                       <key code="28" output="8"/>\r
+                       <key code="29" output="0"/>\r
+                       <key code="30" output="]"/>\r
+                       <key code="31" action="10"/>\r
+                       <key code="32" action="11"/>\r
+                       <key code="33" output="["/>\r
+                       <key code="34" action="8"/>\r
+                       <key code="35" output="P"/>\r
+                       <key code="36" output="&#x000D;"/>\r
+                       <key code="37" output="L"/>\r
+                       <key code="38" output="J"/>\r
+                       <key code="39" output="&#x0027;"/>\r
+                       <key code="40" output="K"/>\r
+                       <key code="41" output=";"/>\r
+                       <key code="42" output="\"/>\r
+                       <key code="43" output=","/>\r
+                       <key code="44" output="/"/>\r
+                       <key code="45" action="9"/>\r
+                       <key code="46" output="M"/>\r
+                       <key code="47" output="."/>\r
+                       <key code="48" output="&#x0009;"/>\r
+                       <key code="49" action="5"/>\r
+                       <key code="50" output="`"/>\r
+                       <key code="51" output="&#x0008;"/>\r
+                       <key code="52" output="&#x0003;"/>\r
+                       <key code="53" output="&#x001B;"/>\r
+                       <key code="65" output="."/>\r
+                       <key code="66" output="&#x001D;"/>\r
+                       <key code="67" output="*"/>\r
+                       <key code="69" output="+"/>\r
+                       <key code="70" output="&#x001C;"/>\r
+                       <key code="71" output="&#x001B;"/>\r
+                       <key code="72" output="&#x001F;"/>\r
+                       <key code="75" output="/"/>\r
+                       <key code="76" output="&#x0003;"/>\r
+                       <key code="77" output="&#x001E;"/>\r
+                       <key code="78" output="-"/>\r
+                       <key code="81" output="="/>\r
+                       <key code="82" output="0"/>\r
+                       <key code="83" output="1"/>\r
+                       <key code="84" output="2"/>\r
+                       <key code="85" output="3"/>\r
+                       <key code="86" output="4"/>\r
+                       <key code="87" output="5"/>\r
+                       <key code="88" output="6"/>\r
+                       <key code="89" output="7"/>\r
+                       <key code="91" output="8"/>\r
+                       <key code="92" output="9"/>\r
+                       <key code="96" output="&#x0010;"/>\r
+                       <key code="97" output="&#x0010;"/>\r
+                       <key code="98" output="&#x0010;"/>\r
+                       <key code="99" output="&#x0010;"/>\r
+                       <key code="100" output="&#x0010;"/>\r
+                       <key code="101" output="&#x0010;"/>\r
+                       <key code="102" output="&#x0010;"/>\r
+                       <key code="103" output="&#x0010;"/>\r
+                       <key code="104" output="&#x0010;"/>\r
+                       <key code="105" output="&#x0010;"/>\r
+                       <key code="106" output="&#x0010;"/>\r
+                       <key code="107" output="&#x0010;"/>\r
+                       <key code="108" output="&#x0010;"/>\r
+                       <key code="109" output="&#x0010;"/>\r
+                       <key code="110" output="&#x0010;"/>\r
+                       <key code="111" output="&#x0010;"/>\r
+                       <key code="112" output="&#x0010;"/>\r
+                       <key code="113" output="&#x0010;"/>\r
+                       <key code="114" output="&#x0005;"/>\r
+                       <key code="115" output="&#x0001;"/>\r
+                       <key code="116" output="&#x000B;"/>\r
+                       <key code="117" output="&#x007F;"/>\r
+                       <key code="118" output="&#x0010;"/>\r
+                       <key code="119" output="&#x0004;"/>\r
+                       <key code="120" output="&#x0010;"/>\r
+                       <key code="121" output="&#x000C;"/>\r
+                       <key code="122" output="&#x0010;"/>\r
+                       <key code="123" output="&#x001C;"/>\r
+                       <key code="124" output="&#x001D;"/>\r
+                       <key code="125" output="&#x001F;"/>\r
+                       <key code="126" output="&#x001E;"/>\r
+               </keyMap>\r
+               <keyMap index="3">\r
+                       <key code="0" output="å"/>\r
+                       <key code="1" output="ß"/>\r
+                       <key code="2" output="∂"/>\r
+                       <key code="3" output="ƒ"/>\r
+                       <key code="4" output="˙"/>\r
+                       <key code="5" output="©"/>\r
+                       <key code="6" output="Ω"/>\r
+                       <key code="7" output="≈"/>\r
+                       <key code="8" output="ç"/>\r
+                       <key code="9" output="√"/>\r
+                       <key code="10" output="§"/>\r
+                       <key code="11" output="∫"/>\r
+                       <key code="12" output="œ"/>\r
+                       <key code="13" output="∑"/>\r
+                       <key code="14" action="0"/>\r
+                       <key code="15" output="®"/>\r
+                       <key code="16" output="¥"/>\r
+                       <key code="17" output="†"/>\r
+                       <key code="18" output="¡"/>\r
+                       <key code="19" output="™"/>\r
+                       <key code="20" output="£"/>\r
+                       <key code="21" output="¢"/>\r
+                       <key code="22" output="§"/>\r
+                       <key code="23" output="∞"/>\r
+                       <key code="24" output="≠"/>\r
+                       <key code="25" output="ª"/>\r
+                       <key code="26" output="¶"/>\r
+                       <key code="27" output="–"/>\r
+                       <key code="28" output="•"/>\r
+                       <key code="29" output="º"/>\r
+                       <key code="30" output="‘"/>\r
+                       <key code="31" output="ø"/>\r
+                       <key code="32" action="3"/>\r
+                       <key code="33" output="“"/>\r
+                       <key code="34" action="2"/>\r
+                       <key code="35" output="π"/>\r
+                       <key code="36" output="&#x000D;"/>\r
+                       <key code="37" output="¬"/>\r
+                       <key code="38" output="∆"/>\r
+                       <key code="39" output="æ"/>\r
+                       <key code="40" output="˚"/>\r
+                       <key code="41" output="…"/>\r
+                       <key code="42" output="«"/>\r
+                       <key code="43" output="≤"/>\r
+                       <key code="44" output="÷"/>\r
+                       <key code="45" action="4"/>\r
+                       <key code="46" output="µ"/>\r
+                       <key code="47" output="≥"/>\r
+                       <key code="48" output="&#x0009;"/>\r
+                       <key code="49" output=" "/>\r
+                       <key code="50" action="1"/>\r
+                       <key code="51" output="&#x0008;"/>\r
+                       <key code="52" output="&#x0003;"/>\r
+                       <key code="53" output="&#x001B;"/>\r
+                       <key code="65" output="."/>\r
+                       <key code="66" output="&#x001D;"/>\r
+                       <key code="67" output="*"/>\r
+                       <key code="69" output="+"/>\r
+                       <key code="70" output="&#x001C;"/>\r
+                       <key code="71" output="&#x001B;"/>\r
+                       <key code="72" output="&#x001F;"/>\r
+                       <key code="75" output="/"/>\r
+                       <key code="76" output="&#x0003;"/>\r
+                       <key code="77" output="&#x001E;"/>\r
+                       <key code="78" output="-"/>\r
+                       <key code="81" output="="/>\r
+                       <key code="82" output="0"/>\r
+                       <key code="83" output="1"/>\r
+                       <key code="84" output="2"/>\r
+                       <key code="85" output="3"/>\r
+                       <key code="86" output="4"/>\r
+                       <key code="87" output="5"/>\r
+                       <key code="88" output="6"/>\r
+                       <key code="89" output="7"/>\r
+                       <key code="91" output="8"/>\r
+                       <key code="92" output="9"/>\r
+                       <key code="96" output="&#x0010;"/>\r
+                       <key code="97" output="&#x0010;"/>\r
+                       <key code="98" output="&#x0010;"/>\r
+                       <key code="99" output="&#x0010;"/>\r
+                       <key code="100" output="&#x0010;"/>\r
+                       <key code="101" output="&#x0010;"/>\r
+                       <key code="102" output="&#x0010;"/>\r
+                       <key code="103" output="&#x0010;"/>\r
+                       <key code="104" output="&#x0010;"/>\r
+                       <key code="105" output="&#x0010;"/>\r
+                       <key code="106" output="&#x0010;"/>\r
+                       <key code="107" output="&#x0010;"/>\r
+                       <key code="108" output="&#x0010;"/>\r
+                       <key code="109" output="&#x0010;"/>\r
+                       <key code="110" output="&#x0010;"/>\r
+                       <key code="111" output="&#x0010;"/>\r
+                       <key code="112" output="&#x0010;"/>\r
+                       <key code="113" output="&#x0010;"/>\r
+                       <key code="114" output="&#x0005;"/>\r
+                       <key code="115" output="&#x0001;"/>\r
+                       <key code="116" output="&#x000B;"/>\r
+                       <key code="117" output="&#x007F;"/>\r
+                       <key code="118" output="&#x0010;"/>\r
+                       <key code="119" output="&#x0004;"/>\r
+                       <key code="120" output="&#x0010;"/>\r
+                       <key code="121" output="&#x000C;"/>\r
+                       <key code="122" output="&#x0010;"/>\r
+                       <key code="123" output="&#x001C;"/>\r
+                       <key code="124" output="&#x001D;"/>\r
+                       <key code="125" output="&#x001F;"/>\r
+                       <key code="126" output="&#x001E;"/>\r
+               </keyMap>\r
+               <keyMap index="4">\r
+                       <key code="0" output="Å"/>\r
+                       <key code="1" output="Í"/>\r
+                       <key code="2" output="Î"/>\r
+                       <key code="3" output="Ï"/>\r
+                       <key code="4" output="Ó"/>\r
+                       <key code="5" output="˝"/>\r
+                       <key code="6" output="¸"/>\r
+                       <key code="7" output="˛"/>\r
+                       <key code="8" output="Ç"/>\r
+                       <key code="9" output="◊"/>\r
+                       <key code="10" output="±"/>\r
+                       <key code="11" output="ı"/>\r
+                       <key code="12" output="Œ"/>\r
+                       <key code="13" output="„"/>\r
+                       <key code="14" output="´"/>\r
+                       <key code="15" output="‰"/>\r
+                       <key code="16" output="Á"/>\r
+                       <key code="17" output="ˇ"/>\r
+                       <key code="18" output="⁄"/>\r
+                       <key code="19" output="€"/>\r
+                       <key code="20" output="‹"/>\r
+                       <key code="21" output="›"/>\r
+                       <key code="22" output="fl"/>\r
+                       <key code="23" output="fi"/>\r
+                       <key code="24" output="±"/>\r
+                       <key code="25" output="·"/>\r
+                       <key code="26" output="‡"/>\r
+                       <key code="27" output="—"/>\r
+                       <key code="28" output="°"/>\r
+                       <key code="29" output="‚"/>\r
+                       <key code="30" output="’"/>\r
+                       <key code="31" output="Ø"/>\r
+                       <key code="32" output="¨"/>\r
+                       <key code="33" output="”"/>\r
+                       <key code="34" output="ˆ"/>\r
+                       <key code="35" output="∏"/>\r
+                       <key code="36" output="&#x000D;"/>\r
+                       <key code="37" output="Ò"/>\r
+                       <key code="38" output="Ô"/>\r
+                       <key code="39" output="Æ"/>\r
+                       <key code="40" output=""/>\r
+                       <key code="41" output="Ú"/>\r
+                       <key code="42" output="»"/>\r
+                       <key code="43" output="¯"/>\r
+                       <key code="44" output="¿"/>\r
+                       <key code="45" output="˜"/>\r
+                       <key code="46" output="Â"/>\r
+                       <key code="47" output="˘"/>\r
+                       <key code="48" output="&#x0009;"/>\r
+                       <key code="49" output=" "/>\r
+                       <key code="50" output="`"/>\r
+                       <key code="51" output="&#x0008;"/>\r
+                       <key code="52" output="&#x0003;"/>\r
+                       <key code="53" output="&#x001B;"/>\r
+                       <key code="65" output="."/>\r
+                       <key code="66" output="*"/>\r
+                       <key code="67" output="*"/>\r
+                       <key code="69" output="+"/>\r
+                       <key code="70" output="+"/>\r
+                       <key code="71" output="&#x001B;"/>\r
+                       <key code="72" output="="/>\r
+                       <key code="75" output="/"/>\r
+                       <key code="76" output="&#x0003;"/>\r
+                       <key code="77" output="/"/>\r
+                       <key code="78" output="-"/>\r
+                       <key code="81" output="="/>\r
+                       <key code="82" output="0"/>\r
+                       <key code="83" output="1"/>\r
+                       <key code="84" output="2"/>\r
+                       <key code="85" output="3"/>\r
+                       <key code="86" output="4"/>\r
+                       <key code="87" output="5"/>\r
+                       <key code="88" output="6"/>\r
+                       <key code="89" output="7"/>\r
+                       <key code="91" output="8"/>\r
+                       <key code="92" output="9"/>\r
+                       <key code="96" output="&#x0010;"/>\r
+                       <key code="97" output="&#x0010;"/>\r
+                       <key code="98" output="&#x0010;"/>\r
+                       <key code="99" output="&#x0010;"/>\r
+                       <key code="100" output="&#x0010;"/>\r
+                       <key code="101" output="&#x0010;"/>\r
+                       <key code="102" output="&#x0010;"/>\r
+                       <key code="103" output="&#x0010;"/>\r
+                       <key code="104" output="&#x0010;"/>\r
+                       <key code="105" output="&#x0010;"/>\r
+                       <key code="106" output="&#x0010;"/>\r
+                       <key code="107" output="&#x0010;"/>\r
+                       <key code="108" output="&#x0010;"/>\r
+                       <key code="109" output="&#x0010;"/>\r
+                       <key code="110" output="&#x0010;"/>\r
+                       <key code="111" output="&#x0010;"/>\r
+                       <key code="112" output="&#x0010;"/>\r
+                       <key code="113" output="&#x0010;"/>\r
+                       <key code="114" output="&#x0005;"/>\r
+                       <key code="115" output="&#x0001;"/>\r
+                       <key code="116" output="&#x000B;"/>\r
+                       <key code="117" output="&#x007F;"/>\r
+                       <key code="118" output="&#x0010;"/>\r
+                       <key code="119" output="&#x0004;"/>\r
+                       <key code="120" output="&#x0010;"/>\r
+                       <key code="121" output="&#x000C;"/>\r
+                       <key code="122" output="&#x0010;"/>\r
+                       <key code="123" output="&#x001C;"/>\r
+                       <key code="124" output="&#x001D;"/>\r
+                       <key code="125" output="&#x001F;"/>\r
+                       <key code="126" output="&#x001E;"/>\r
+               </keyMap>\r
+               <keyMap index="5">\r
+                       <key code="0" output="Å"/>\r
+                       <key code="1" output="Í"/>\r
+                       <key code="2" output="Î"/>\r
+                       <key code="3" output="Ï"/>\r
+                       <key code="4" output="Ó"/>\r
+                       <key code="5" output="©"/>\r
+                       <key code="6" output="Ω"/>\r
+                       <key code="7" output="≈"/>\r
+                       <key code="8" output="Ç"/>\r
+                       <key code="9" output="√"/>\r
+                       <key code="10" output="§"/>\r
+                       <key code="11" output="ı"/>\r
+                       <key code="12" output="Œ"/>\r
+                       <key code="13" output="∑"/>\r
+                       <key code="14" output="´"/>\r
+                       <key code="15" output="®"/>\r
+                       <key code="16" output="Á"/>\r
+                       <key code="17" output="†"/>\r
+                       <key code="18" output="¡"/>\r
+                       <key code="19" output="™"/>\r
+                       <key code="20" output="£"/>\r
+                       <key code="21" output="¢"/>\r
+                       <key code="22" output="§"/>\r
+                       <key code="23" output="∞"/>\r
+                       <key code="24" output="≠"/>\r
+                       <key code="25" output="ª"/>\r
+                       <key code="26" output="¶"/>\r
+                       <key code="27" output="–"/>\r
+                       <key code="28" output="•"/>\r
+                       <key code="29" output="º"/>\r
+                       <key code="30" output="‘"/>\r
+                       <key code="31" output="Ø"/>\r
+                       <key code="32" output="¨"/>\r
+                       <key code="33" output="“"/>\r
+                       <key code="34" output="ˆ"/>\r
+                       <key code="35" output="∏"/>\r
+                       <key code="36" output="&#x000D;"/>\r
+                       <key code="37" output="Ò"/>\r
+                       <key code="38" output="Ô"/>\r
+                       <key code="39" output="Æ"/>\r
+                       <key code="40" output="˚"/>\r
+                       <key code="41" output="…"/>\r
+                       <key code="42" output="«"/>\r
+                       <key code="43" output="≤"/>\r
+                       <key code="44" output="÷"/>\r
+                       <key code="45" output="˜"/>\r
+                       <key code="46" output="Â"/>\r
+                       <key code="47" output="≥"/>\r
+                       <key code="48" output="&#x0009;"/>\r
+                       <key code="49" output=" "/>\r
+                       <key code="50" output="`"/>\r
+                       <key code="51" output="&#x0008;"/>\r
+                       <key code="52" output="&#x0003;"/>\r
+                       <key code="53" output="&#x001B;"/>\r
+                       <key code="65" output="."/>\r
+                       <key code="66" output="&#x001D;"/>\r
+                       <key code="67" output="*"/>\r
+                       <key code="69" output="+"/>\r
+                       <key code="70" output="&#x001C;"/>\r
+                       <key code="71" output="&#x001B;"/>\r
+                       <key code="72" output="&#x001F;"/>\r
+                       <key code="75" output="/"/>\r
+                       <key code="76" output="&#x0003;"/>\r
+                       <key code="77" output="&#x001E;"/>\r
+                       <key code="78" output="-"/>\r
+                       <key code="81" output="="/>\r
+                       <key code="82" output="0"/>\r
+                       <key code="83" output="1"/>\r
+                       <key code="84" output="2"/>\r
+                       <key code="85" output="3"/>\r
+                       <key code="86" output="4"/>\r
+                       <key code="87" output="5"/>\r
+                       <key code="88" output="6"/>\r
+                       <key code="89" output="7"/>\r
+                       <key code="91" output="8"/>\r
+                       <key code="92" output="9"/>\r
+                       <key code="96" output="&#x0010;"/>\r
+                       <key code="97" output="&#x0010;"/>\r
+                       <key code="98" output="&#x0010;"/>\r
+                       <key code="99" output="&#x0010;"/>\r
+                       <key code="100" output="&#x0010;"/>\r
+                       <key code="101" output="&#x0010;"/>\r
+                       <key code="102" output="&#x0010;"/>\r
+                       <key code="103" output="&#x0010;"/>\r
+                       <key code="104" output="&#x0010;"/>\r
+                       <key code="105" output="&#x0010;"/>\r
+                       <key code="106" output="&#x0010;"/>\r
+                       <key code="107" output="&#x0010;"/>\r
+                       <key code="108" output="&#x0010;"/>\r
+                       <key code="109" output="&#x0010;"/>\r
+                       <key code="110" output="&#x0010;"/>\r
+                       <key code="111" output="&#x0010;"/>\r
+                       <key code="112" output="&#x0010;"/>\r
+                       <key code="113" output="&#x0010;"/>\r
+                       <key code="114" output="&#x0005;"/>\r
+                       <key code="115" output="&#x0001;"/>\r
+                       <key code="116" output="&#x000B;"/>\r
+                       <key code="117" output="&#x007F;"/>\r
+                       <key code="118" output="&#x0010;"/>\r
+                       <key code="119" output="&#x0004;"/>\r
+                       <key code="120" output="&#x0010;"/>\r
+                       <key code="121" output="&#x000C;"/>\r
+                       <key code="122" output="&#x0010;"/>\r
+                       <key code="123" output="&#x001C;"/>\r
+                       <key code="124" output="&#x001D;"/>\r
+                       <key code="125" output="&#x001F;"/>\r
+                       <key code="126" output="&#x001E;"/>\r
+               </keyMap>\r
+               <keyMap index="6">\r
+                       <key code="0" output="å"/>\r
+                       <key code="1" output="ß"/>\r
+                       <key code="2" output="∂"/>\r
+                       <key code="3" output="ƒ"/>\r
+                       <key code="4" output="˙"/>\r
+                       <key code="5" output="©"/>\r
+                       <key code="6" output="Ω"/>\r
+                       <key code="7" output="≈"/>\r
+                       <key code="8" output="ç"/>\r
+                       <key code="9" output="√"/>\r
+                       <key code="10" output="§"/>\r
+                       <key code="11" output="∫"/>\r
+                       <key code="12" output="œ"/>\r
+                       <key code="13" output="∑"/>\r
+                       <key code="14" output="´"/>\r
+                       <key code="15" output="®"/>\r
+                       <key code="16" output="¥"/>\r
+                       <key code="17" output="†"/>\r
+                       <key code="18" output="¡"/>\r
+                       <key code="19" output="™"/>\r
+                       <key code="20" output="£"/>\r
+                       <key code="21" output="¢"/>\r
+                       <key code="22" output="§"/>\r
+                       <key code="23" output="∞"/>\r
+                       <key code="24" output="≠"/>\r
+                       <key code="25" output="ª"/>\r
+                       <key code="26" output="¶"/>\r
+                       <key code="27" output="–"/>\r
+                       <key code="28" output="•"/>\r
+                       <key code="29" output="º"/>\r
+                       <key code="30" output="‘"/>\r
+                       <key code="31" output="ø"/>\r
+                       <key code="32" output="¨"/>\r
+                       <key code="33" output="“"/>\r
+                       <key code="34" output="^"/>\r
+                       <key code="35" output="π"/>\r
+                       <key code="36" output="&#x000D;"/>\r
+                       <key code="37" output="¬"/>\r
+                       <key code="38" output="∆"/>\r
+                       <key code="39" output="æ"/>\r
+                       <key code="40" output="˚"/>\r
+                       <key code="41" output="…"/>\r
+                       <key code="42" output="«"/>\r
+                       <key code="43" output="≤"/>\r
+                       <key code="44" output="÷"/>\r
+                       <key code="45" output="~"/>\r
+                       <key code="46" output="µ"/>\r
+                       <key code="47" output="≥"/>\r
+                       <key code="48" output="&#x0009;"/>\r
+                       <key code="49" output=" "/>\r
+                       <key code="50" output="`"/>\r
+                       <key code="51" output="&#x0008;"/>\r
+                       <key code="52" output="&#x0003;"/>\r
+                       <key code="53" output="&#x001B;"/>\r
+                       <key code="65" output="."/>\r
+                       <key code="66" output="&#x001D;"/>\r
+                       <key code="67" output="*"/>\r
+                       <key code="69" output="+"/>\r
+                       <key code="70" output="&#x001C;"/>\r
+                       <key code="71" output="&#x001B;"/>\r
+                       <key code="72" output="&#x001F;"/>\r
+                       <key code="75" output="/"/>\r
+                       <key code="76" output="&#x0003;"/>\r
+                       <key code="77" output="&#x001E;"/>\r
+                       <key code="78" output="-"/>\r
+                       <key code="81" output="="/>\r
+                       <key code="82" output="0"/>\r
+                       <key code="83" output="1"/>\r
+                       <key code="84" output="2"/>\r
+                       <key code="85" output="3"/>\r
+                       <key code="86" output="4"/>\r
+                       <key code="87" output="5"/>\r
+                       <key code="88" output="6"/>\r
+                       <key code="89" output="7"/>\r
+                       <key code="91" output="8"/>\r
+                       <key code="92" output="9"/>\r
+                       <key code="96" output="&#x0010;"/>\r
+                       <key code="97" output="&#x0010;"/>\r
+                       <key code="98" output="&#x0010;"/>\r
+                       <key code="99" output="&#x0010;"/>\r
+                       <key code="100" output="&#x0010;"/>\r
+                       <key code="101" output="&#x0010;"/>\r
+                       <key code="102" output="&#x0010;"/>\r
+                       <key code="103" output="&#x0010;"/>\r
+                       <key code="104" output="&#x0010;"/>\r
+                       <key code="105" output="&#x0010;"/>\r
+                       <key code="106" output="&#x0010;"/>\r
+                       <key code="107" output="&#x0010;"/>\r
+                       <key code="108" output="&#x0010;"/>\r
+                       <key code="109" output="&#x0010;"/>\r
+                       <key code="110" output="&#x0010;"/>\r
+                       <key code="111" output="&#x0010;"/>\r
+                       <key code="112" output="&#x0010;"/>\r
+                       <key code="113" output="&#x0010;"/>\r
+                       <key code="114" output="&#x0005;"/>\r
+                       <key code="115" output="&#x0001;"/>\r
+                       <key code="116" output="&#x000B;"/>\r
+                       <key code="117" output="&#x007F;"/>\r
+                       <key code="118" output="&#x0010;"/>\r
+                       <key code="119" output="&#x0004;"/>\r
+                       <key code="120" output="&#x0010;"/>\r
+                       <key code="121" output="&#x000C;"/>\r
+                       <key code="122" output="&#x0010;"/>\r
+                       <key code="123" output="&#x001C;"/>\r
+                       <key code="124" output="&#x001D;"/>\r
+                       <key code="125" output="&#x001F;"/>\r
+                       <key code="126" output="&#x001E;"/>\r
+               </keyMap>\r
+               <keyMap index="7">\r
+                       <key code="0" output="&#x0001;"/>\r
+                       <key code="1" output="&#x0013;"/>\r
+                       <key code="2" output="&#x0004;"/>\r
+                       <key code="3" output="&#x0006;"/>\r
+                       <key code="4" output="&#x0008;"/>\r
+                       <key code="5" output="&#x0007;"/>\r
+                       <key code="6" output="&#x001A;"/>\r
+                       <key code="7" output="&#x0018;"/>\r
+                       <key code="8" output="&#x0003;"/>\r
+                       <key code="9" output="&#x0016;"/>\r
+                       <key code="10" output="0"/>\r
+                       <key code="11" output="&#x0002;"/>\r
+                       <key code="12" output="&#x0011;"/>\r
+                       <key code="13" output="&#x0017;"/>\r
+                       <key code="14" output="&#x0005;"/>\r
+                       <key code="15" output="&#x0012;"/>\r
+                       <key code="16" output="&#x0019;"/>\r
+                       <key code="17" output="&#x0014;"/>\r
+                       <key code="18" output="1"/>\r
+                       <key code="19" output="2"/>\r
+                       <key code="20" output="3"/>\r
+                       <key code="21" output="4"/>\r
+                       <key code="22" output="6"/>\r
+                       <key code="23" output="5"/>\r
+                       <key code="24" output="="/>\r
+                       <key code="25" output="9"/>\r
+                       <key code="26" output="7"/>\r
+                       <key code="27" output="&#x001F;"/>\r
+                       <key code="28" output="8"/>\r
+                       <key code="29" output="0"/>\r
+                       <key code="30" output="&#x001D;"/>\r
+                       <key code="31" output="&#x000F;"/>\r
+                       <key code="32" output="&#x0015;"/>\r
+                       <key code="33" output="&#x001B;"/>\r
+                       <key code="34" output="&#x0009;"/>\r
+                       <key code="35" output="&#x0010;"/>\r
+                       <key code="36" output="&#x000D;"/>\r
+                       <key code="37" output="&#x000C;"/>\r
+                       <key code="38" output="&#x000A;"/>\r
+                       <key code="39" output="&#x0027;"/>\r
+                       <key code="40" output="&#x000B;"/>\r
+                       <key code="41" output=";"/>\r
+                       <key code="42" output="&#x001C;"/>\r
+                       <key code="43" output=","/>\r
+                       <key code="44" output="/"/>\r
+                       <key code="45" output="&#x000E;"/>\r
+                       <key code="46" output="&#x000D;"/>\r
+                       <key code="47" output="."/>\r
+                       <key code="48" output="&#x0009;"/>\r
+                       <key code="49" action="5"/>\r
+                       <key code="50" output="`"/>\r
+                       <key code="51" output="&#x0008;"/>\r
+                       <key code="52" output="&#x0003;"/>\r
+                       <key code="53" output="&#x001B;"/>\r
+                       <key code="65" output="."/>\r
+                       <key code="66" output="&#x001D;"/>\r
+                       <key code="67" output="*"/>\r
+                       <key code="69" output="+"/>\r
+                       <key code="70" output="&#x001C;"/>\r
+                       <key code="71" output="&#x001B;"/>\r
+                       <key code="72" output="&#x001F;"/>\r
+                       <key code="75" output="/"/>\r
+                       <key code="76" output="&#x0003;"/>\r
+                       <key code="77" output="&#x001E;"/>\r
+                       <key code="78" output="-"/>\r
+                       <key code="81" output="="/>\r
+                       <key code="82" output="0"/>\r
+                       <key code="83" output="1"/>\r
+                       <key code="84" output="2"/>\r
+                       <key code="85" output="3"/>\r
+                       <key code="86" output="4"/>\r
+                       <key code="87" output="5"/>\r
+                       <key code="88" output="6"/>\r
+                       <key code="89" output="7"/>\r
+                       <key code="91" output="8"/>\r
+                       <key code="92" output="9"/>\r
+                       <key code="96" output="&#x0010;"/>\r
+                       <key code="97" output="&#x0010;"/>\r
+                       <key code="98" output="&#x0010;"/>\r
+                       <key code="99" output="&#x0010;"/>\r
+                       <key code="100" output="&#x0010;"/>\r
+                       <key code="101" output="&#x0010;"/>\r
+                       <key code="102" output="&#x0010;"/>\r
+                       <key code="103" output="&#x0010;"/>\r
+                       <key code="104" output="&#x0010;"/>\r
+                       <key code="105" output="&#x0010;"/>\r
+                       <key code="106" output="&#x0010;"/>\r
+                       <key code="107" output="&#x0010;"/>\r
+                       <key code="108" output="&#x0010;"/>\r
+                       <key code="109" output="&#x0010;"/>\r
+                       <key code="110" output="&#x0010;"/>\r
+                       <key code="111" output="&#x0010;"/>\r
+                       <key code="112" output="&#x0010;"/>\r
+                       <key code="113" output="&#x0010;"/>\r
+                       <key code="114" output="&#x0005;"/>\r
+                       <key code="115" output="&#x0001;"/>\r
+                       <key code="116" output="&#x000B;"/>\r
+                       <key code="117" output="&#x007F;"/>\r
+                       <key code="118" output="&#x0010;"/>\r
+                       <key code="119" output="&#x0004;"/>\r
+                       <key code="120" output="&#x0010;"/>\r
+                       <key code="121" output="&#x000C;"/>\r
+                       <key code="122" output="&#x0010;"/>\r
+                       <key code="123" output="&#x001C;"/>\r
+                       <key code="124" output="&#x001D;"/>\r
+                       <key code="125" output="&#x001F;"/>\r
+                       <key code="126" output="&#x001E;"/>\r
+               </keyMap>\r
+       </keyMapSet>\r
+       <keyMapSet id="984">\r
+               <keyMap index="0" baseMapSet="16c" baseIndex="0">\r
+                       <key code="24" output="^"/>\r
+                       <key code="30" output="["/>\r
+                       <key code="33" output="@"/>\r
+                       <key code="39" output=":"/>\r
+                       <key code="42" output="]"/>\r
+                       <key code="93" output="¥"/>\r
+                       <key code="94" output="_"/>\r
+                       <key code="95" output=","/>\r
+                       <key code="102" action="5"/>\r
+                       <key code="104" action="5"/>\r
+               </keyMap>\r
+               <keyMap index="1" baseMapSet="16c" baseIndex="1">\r
+                       <key code="19" output="&#x0022;"/>\r
+                       <key code="22" output="&#x0026;"/>\r
+                       <key code="24" output="~"/>\r
+                       <key code="25" output=")"/>\r
+                       <key code="26" output="&#x0027;"/>\r
+                       <key code="27" output="="/>\r
+                       <key code="28" output="("/>\r
+                       <key code="29" output="0"/>\r
+                       <key code="30" output="{"/>\r
+                       <key code="33" output="`"/>\r
+                       <key code="39" output="*"/>\r
+                       <key code="41" output="+"/>\r
+                       <key code="42" output="}"/>\r
+                       <key code="93" output="|"/>\r
+                       <key code="94" output="_"/>\r
+                       <key code="95" output=","/>\r
+                       <key code="102" action="5"/>\r
+                       <key code="104" action="5"/>\r
+               </keyMap>\r
+               <keyMap index="2" baseMapSet="16c" baseIndex="2">\r
+                       <key code="24" output="^"/>\r
+                       <key code="30" output="["/>\r
+                       <key code="33" output="@"/>\r
+                       <key code="39" output=":"/>\r
+                       <key code="42" output="]"/>\r
+                       <key code="93" output="¥"/>\r
+                       <key code="94" output="_"/>\r
+                       <key code="95" output=","/>\r
+                       <key code="102" action="5"/>\r
+                       <key code="104" action="5"/>\r
+               </keyMap>\r
+               <keyMap index="3" baseMapSet="16c" baseIndex="3">\r
+                       <key code="93" output="\"/>\r
+                       <key code="94" action="1"/>\r
+                       <key code="95" output=","/>\r
+                       <key code="102" action="5"/>\r
+                       <key code="104" action="5"/>\r
+               </keyMap>\r
+               <keyMap index="4" baseMapSet="16c" baseIndex="4">\r
+                       <key code="93" output="|"/>\r
+                       <key code="94" output="`"/>\r
+                       <key code="95" output=","/>\r
+                       <key code="102" action="5"/>\r
+                       <key code="104" action="5"/>\r
+               </keyMap>\r
+               <keyMap index="5" baseMapSet="16c" baseIndex="5">\r
+                       <key code="93" output="\"/>\r
+                       <key code="94" output="`"/>\r
+                       <key code="95" output=","/>\r
+                       <key code="102" action="5"/>\r
+                       <key code="104" action="5"/>\r
+               </keyMap>\r
+               <keyMap index="6" baseMapSet="16c" baseIndex="6">\r
+                       <key code="93" output="\"/>\r
+                       <key code="94" output="_"/>\r
+                       <key code="95" output=","/>\r
+                       <key code="102" action="5"/>\r
+                       <key code="104" action="5"/>\r
+               </keyMap>\r
+               <keyMap index="7" baseMapSet="16c" baseIndex="7">\r
+                       <key code="93" output="|"/>\r
+                       <key code="94" output="_"/>\r
+                       <key code="95" output=","/>\r
+                       <key code="102" action="5"/>\r
+                       <key code="104" action="5"/>\r
+               </keyMap>\r
+       </keyMapSet>\r
+       <actions>\r
+               <action id="&#x0022;">\r
+                       <when state="none" output="&#x0022;"/>\r
+                       <when state="6" output="Æ"/>\r
+               </action>\r
+               <action id="&#x0027;">\r
+                       <when state="none" output="&#x0027;"/>\r
+                       <when state="6" output="æ"/>\r
+               </action>\r
+               <action id="0">\r
+                       <when state="none" next="1"/>\r
+               </action>\r
+               <action id="1">\r
+                       <when state="none" next="2"/>\r
+               </action>\r
+               <action id="10">\r
+                       <when state="none" output="O"/>\r
+                       <when state="1" output="Ó"/>\r
+                       <when state="2" output="Ò"/>\r
+                       <when state="3" output="Ô"/>\r
+                       <when state="4" output="Ö"/>\r
+                       <when state="5" output="Õ"/>\r
+                       <when state="6" output="Ø"/>\r
+               </action>\r
+               <action id="11">\r
+                       <when state="none" output="U"/>\r
+                       <when state="1" output="Ú"/>\r
+                       <when state="2" output="Ù"/>\r
+                       <when state="3" output="Û"/>\r
+                       <when state="4" output="Ü"/>\r
+                       <when state="6" output="Ö"/>\r
+               </action>\r
+               <action id="12">\r
+                       <when state="none" output="Y"/>\r
+                       <when state="4" output="Ÿ"/>\r
+               </action>\r
+               <action id="13">\r
+                       <when state="none" output="a"/>\r
+                       <when state="1" output="á"/>\r
+                       <when state="2" output="à"/>\r
+                       <when state="3" output="â"/>\r
+                       <when state="4" output="ä"/>\r
+                       <when state="5" output="ã"/>\r
+                       <when state="6" output="å"/>\r
+               </action>\r
+               <action id="14">\r
+                       <when state="none" output="e"/>\r
+                       <when state="1" output="é"/>\r
+                       <when state="2" output="è"/>\r
+                       <when state="3" output="ê"/>\r
+                       <when state="4" output="ë"/>\r
+                       <when state="6" output="ä"/>\r
+               </action>\r
+               <action id="15">\r
+                       <when state="none" output="i"/>\r
+                       <when state="1" output="í"/>\r
+                       <when state="2" output="ì"/>\r
+                       <when state="3" output="î"/>\r
+                       <when state="4" output="ï"/>\r
+               </action>\r
+               <action id="16">\r
+                       <when state="none" output="n"/>\r
+                       <when state="5" output="ñ"/>\r
+               </action>\r
+               <action id="17">\r
+                       <when state="none" output="o"/>\r
+                       <when state="1" output="ó"/>\r
+                       <when state="2" output="ò"/>\r
+                       <when state="3" output="ô"/>\r
+                       <when state="4" output="ö"/>\r
+                       <when state="5" output="õ"/>\r
+                       <when state="6" output="ø"/>\r
+               </action>\r
+               <action id="18">\r
+                       <when state="none" output="u"/>\r
+                       <when state="1" output="ú"/>\r
+                       <when state="2" output="ù"/>\r
+                       <when state="3" output="û"/>\r
+                       <when state="4" output="ü"/>\r
+                       <when state="6" output="ö"/>\r
+               </action>\r
+               <action id="19">\r
+                       <when state="none" output="y"/>\r
+                       <when state="4" output="ÿ"/>\r
+               </action>\r
+               <action id="2">\r
+                       <when state="none" next="3"/>\r
+               </action>\r
+               <action id="3">\r
+                       <when state="none" next="4"/>\r
+               </action>\r
+               <action id="4">\r
+                       <when state="none" next="5"/>\r
+               </action>\r
+               <action id="5">\r
+                       <when state="none" output=" "/>\r
+                       <when state="1" output="´"/>\r
+                       <when state="2" output="`"/>\r
+                       <when state="3" output="ˆ"/>\r
+                       <when state="4" output="¨"/>\r
+                       <when state="5" output="˜"/>\r
+               </action>\r
+               <action id="6">\r
+                       <when state="none" output="A"/>\r
+                       <when state="1" output="Á"/>\r
+                       <when state="2" output="À"/>\r
+                       <when state="3" output="Â"/>\r
+                       <when state="4" output="Ä"/>\r
+                       <when state="5" output="Ã"/>\r
+                       <when state="6" output="Å"/>\r
+               </action>\r
+               <action id="7">\r
+                       <when state="none" output="E"/>\r
+                       <when state="1" output="É"/>\r
+                       <when state="2" output="È"/>\r
+                       <when state="3" output="Ê"/>\r
+                       <when state="4" output="Ë"/>\r
+                       <when state="6" output="Ä"/>\r
+               </action>\r
+               <action id="8">\r
+                       <when state="none" output="I"/>\r
+                       <when state="1" output="Í"/>\r
+                       <when state="2" output="Ì"/>\r
+                       <when state="3" output="Î"/>\r
+                       <when state="4" output="Ï"/>\r
+               </action>\r
+               <action id="9">\r
+                       <when state="none" output="N"/>\r
+                       <when state="5" output="Ñ"/>\r
+               </action>\r
+               <action id="`">\r
+                       <when state="none" next="6"/>\r
+               </action>\r
+       </actions>\r
+       <terminators>\r
+               <when state="1" output="´"/>\r
+               <when state="2" output="`"/>\r
+               <when state="3" output="ˆ"/>\r
+               <when state="4" output="¨"/>\r
+               <when state="5" output="˜"/>\r
+               <when state="6" output="`"/>\r
+       </terminators>\r
+</keyboard>\r
index 94c4f1ecf634db493d5c039450f250a326311fe0..72f10929c7cbde9cc2882e83c5df46b59d182c1d 100644 (file)
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-       <key>BuildVersion</key>
-       <string></string>
-       <key>ProjectName</key>
-       <string>usdanish</string>
-       <key>SourceVersion</key>
-       <string></string>
-</dict>
-</plist>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\r
+<plist version="1.0">\r
+<dict>\r
+       <key>BuildVersion</key>\r
+       <string></string>\r
+       <key>ProjectName</key>\r
+       <string>usdanish</string>\r
+       <key>SourceVersion</key>\r
+       <string></string>\r
+</dict>\r
+</plist>\r
index d19f5f59372b8b42d37296141c73b908e846d07a..22a4f38ca3106f763a30d8cdea6a4284dc9d06d2 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,12 +1,12 @@
-# dotfiles
-
-What you need to do on the new box is this:
-    
-    $ cd $HOME
-    $ git init --bare $HOME/.dotfiles
-    $ alias dotfiles='git --git-dir=$HOME/.dotfiles --work-tree=$HOME'
-    $ dotfiles config --local status.showUntrackedFiles no
-    $ dotfiles remote add origin git@bitbucket.org:jannikz/dotfiles.git
-    $ dotfiles fetch
-    $ dotfiles reset --hard origin/master
+# dotfiles\r
+\r
+What you need to do on the new box is this:\r
+    \r
+    $ cd $HOME\r
+    $ git init --bare $HOME/.dotfiles\r
+    $ alias dotfiles='git --git-dir=$HOME/.dotfiles --work-tree=$HOME'\r
+    $ dotfiles config --local status.showUntrackedFiles no\r
+    $ dotfiles remote add origin git@bitbucket.org:jannikz/dotfiles.git\r
+    $ dotfiles fetch\r
+    $ dotfiles reset --hard origin/master\r
     $ dotfiles branch -u origin/master
\ No newline at end of file
index ddcec7d59e4eaad60a6befa3b3bb6f2c7c631a82..c451db775f477c10a3192b3cbdf2e8edd366805d 100644 (file)
@@ -1,5 +1,5 @@
-#!/bin/sh
-
-sudo dnf install kernel-$1
-sudo dnf install akmod-wl "kernel-devel-uname-r == $(uname -r)"
-sudo akmods
+#!/bin/sh\r
+\r
+sudo dnf install kernel-$1\r
+sudo dnf install akmod-wl "kernel-devel-uname-r == $(uname -r)"\r
+sudo akmods\r
index 5d635d9f6895a22db82f763745105aee34ea563a..29892786206bf4826a34f5e10acf55f48eeac3fb 100644 (file)
@@ -1,3 +1,3 @@
-#!/bin/sh
-make PREFIX=$PREFIX MULTILIB=lib
-make install PREFIX=$PREFIX/apps/luajit MULTILIB=lib
+#!/bin/sh\r
+make PREFIX=$PREFIX MULTILIB=lib\r
+make install PREFIX=$PREFIX/apps/luajit MULTILIB=lib\r
index e708d5430b3d0a8db050439f728e7531f5f66e70..97e817d2747bb226d0879119b00c0bd39b3391c7 100644 (file)
-#!/usr/bin/env perl
-
-# by entheon, do whatever the hell you want with this file
-
-print "\n";
-print "**************************\n";
-print "*XTERM 256Color Test Chart\n";
-print "**************************\n";
-print "* 16  = black\n";
-print "* 255 = white\n";
-print "*\n";
-print "* Usage:\n";
-print "* colortest -w\n";
-print "*    wide display\n";
-print "*\n";
-print "* colortest -w -r\n";
-print "*    wide display reversed\n";
-print "*\n";
-print "* colortest -w -s\n";
-print "*    extra spaces padding\n";
-print "*\n";
-print "* colortest -w -r -s\n";
-print "*    available combination\n";
-print "*\n";
-print "**************************\n";
-
-if( $ARGV[0] eq "-w" || $ARGV[1] eq "-w" || $ARGV[2] eq "-w" ) {
-    push(@arr, [(  "\e[38;5;16m 16:  00/00/00",     "\e[38;5;17m 17:  00/00/5f",     "\e[38;5;18m 18:  00/00/87",     "\e[38;5;19m 19:  00/00/af",     "\e[38;5;20m 20:  00/00/d7",     "\e[38;5;21m 21:  00/00/ff")] );  
-    push(@arr, [(  "\e[38;5;22m 22:  00/5f/00",     "\e[38;5;23m 23:  00/5f/5f",     "\e[38;5;24m 24:  00/5f/87",     "\e[38;5;25m 25:  00/5f/af",     "\e[38;5;26m 26:  00/5f/d7",     "\e[38;5;27m 27:  00/5f/ff")] );  
-    push(@arr, [(  "\e[38;5;28m 28:  00/87/00",     "\e[38;5;29m 29:  00/87/5f",     "\e[38;5;30m 30:  00/87/87",     "\e[38;5;31m 31:  00/87/af",     "\e[38;5;32m 32:  00/87/d7",     "\e[38;5;33m 33:  00/87/ff")] );  
-    push(@arr, [(  "\e[38;5;34m 34:  00/af/00",     "\e[38;5;35m 35:  00/af/5f",     "\e[38;5;36m 36:  00/af/87",     "\e[38;5;37m 37:  00/af/af",     "\e[38;5;38m 38:  00/af/d7",     "\e[38;5;39m 39:  00/af/ff")] );  
-    push(@arr, [(  "\e[38;5;40m 40:  00/d7/00",     "\e[38;5;41m 41:  00/d7/5f",     "\e[38;5;42m 42:  00/d7/87",     "\e[38;5;43m 43:  00/d7/af",     "\e[38;5;44m 44:  00/d7/d7",     "\e[38;5;45m 45:  00/d7/ff")] );  
-    push(@arr, [(  "\e[38;5;46m 46:  00/ff/00",     "\e[38;5;47m 47:  00/ff/5f",     "\e[38;5;48m 48:  00/ff/87",     "\e[38;5;49m 49:  00/ff/af",     "\e[38;5;50m 50:  00/ff/d7",     "\e[38;5;51m 51:  00/ff/ff")] );  
-    push(@arr, [(  "\e[38;5;52m 52:  5f/00/00",     "\e[38;5;53m 53:  5f/00/5f",     "\e[38;5;54m 54:  5f/00/87",     "\e[38;5;55m 55:  5f/00/af",     "\e[38;5;56m 56:  5f/00/d7",     "\e[38;5;57m 57:  5f/00/ff")] );  
-    push(@arr, [(  "\e[38;5;58m 58:  5f/5f/00",     "\e[38;5;59m 59:  5f/5f/5f",     "\e[38;5;60m 60:  5f/5f/87",     "\e[38;5;61m 61:  5f/5f/af",     "\e[38;5;62m 62:  5f/5f/d7",     "\e[38;5;63m 63:  5f/5f/ff")] );  
-    push(@arr, [(  "\e[38;5;64m 64:  5f/87/00",     "\e[38;5;65m 65:  5f/87/5f",     "\e[38;5;66m 66:  5f/87/87",     "\e[38;5;67m 67:  5f/87/af",     "\e[38;5;68m 68:  5f/87/d7",     "\e[38;5;69m 69:  5f/87/ff")] );  
-    push(@arr, [(  "\e[38;5;70m 70:  5f/af/00",     "\e[38;5;71m 71:  5f/af/5f",     "\e[38;5;72m 72:  5f/af/87",     "\e[38;5;73m 73:  5f/af/af",     "\e[38;5;74m 74:  5f/af/d7",     "\e[38;5;75m 75:  5f/af/ff")] );  
-    push(@arr, [(  "\e[38;5;76m 76:  5f/d7/00",     "\e[38;5;77m 77:  5f/d7/5f",     "\e[38;5;78m 78:  5f/d7/87",     "\e[38;5;79m 79:  5f/d7/af",     "\e[38;5;80m 80:  5f/d7/d7",     "\e[38;5;81m 81:  5f/d7/ff")] );  
-    push(@arr, [(  "\e[38;5;82m 82:  5f/ff/00",     "\e[38;5;83m 83:  5f/ff/5f",     "\e[38;5;84m 84:  5f/ff/87",     "\e[38;5;85m 85:  5f/ff/af",     "\e[38;5;86m 86:  5f/ff/d7",     "\e[38;5;87m 87:  5f/ff/ff")] );  
-    push(@arr, [(  "\e[38;5;88m 88:  87/00/00",     "\e[38;5;89m 89:  87/00/5f",     "\e[38;5;90m 90:  87/00/87",     "\e[38;5;91m 91:  87/00/af",     "\e[38;5;92m 92:  87/00/d7",     "\e[38;5;93m 93:  87/00/ff")] );  
-    push(@arr, [(  "\e[38;5;94m 94:  87/5f/00",     "\e[38;5;95m 95:  87/5f/5f",     "\e[38;5;96m 96:  87/5f/87",     "\e[38;5;97m 97:  87/5f/af",     "\e[38;5;98m 98:  87/5f/d7",     "\e[38;5;99m 99:  87/5f/ff")] );  
-    push(@arr, [( "\e[38;5;100m 100: 87/87/00",    "\e[38;5;101m 101: 87/87/5f",    "\e[38;5;102m 102: 87/87/87",    "\e[38;5;103m 103: 87/87/af",    "\e[38;5;104m 104: 87/87/d7",    "\e[38;5;105m 105: 87/87/ff")] );
-    push(@arr, [( "\e[38;5;106m 106: 87/af/00",    "\e[38;5;107m 107: 87/af/5f",    "\e[38;5;108m 108: 87/af/87",    "\e[38;5;109m 109: 87/af/af",    "\e[38;5;110m 110: 87/af/d7",    "\e[38;5;111m 111: 87/af/ff")] );
-    push(@arr, [( "\e[38;5;112m 112: 87/d7/00",    "\e[38;5;113m 113: 87/d7/5f",    "\e[38;5;114m 114: 87/d7/87",    "\e[38;5;115m 115: 87/d7/af",    "\e[38;5;116m 116: 87/d7/d7",    "\e[38;5;117m 117: 87/d7/ff")] );
-    push(@arr, [( "\e[38;5;118m 118: 87/ff/00",    "\e[38;5;119m 119: 87/ff/5f",    "\e[38;5;120m 120: 87/ff/87",    "\e[38;5;121m 121: 87/ff/af",    "\e[38;5;122m 122: 87/ff/d7",    "\e[38;5;123m 123: 87/ff/ff")] );
-    push(@arr, [( "\e[38;5;124m 124: af/00/00",    "\e[38;5;125m 125: af/00/5f",    "\e[38;5;126m 126: af/00/87",    "\e[38;5;127m 127: af/00/af",    "\e[38;5;128m 128: af/00/d7",    "\e[38;5;129m 129: af/00/ff")] );
-    push(@arr, [( "\e[38;5;130m 130: af/5f/00",    "\e[38;5;131m 131: af/5f/5f",    "\e[38;5;132m 132: af/5f/87",    "\e[38;5;133m 133: af/5f/af",    "\e[38;5;134m 134: af/5f/d7",    "\e[38;5;135m 135: af/5f/ff")] );
-    push(@arr, [( "\e[38;5;136m 136: af/87/00",    "\e[38;5;137m 137: af/87/5f",    "\e[38;5;138m 138: af/87/87",    "\e[38;5;139m 139: af/87/af",    "\e[38;5;140m 140: af/87/d7",    "\e[38;5;141m 141: af/87/ff")] );
-    push(@arr, [( "\e[38;5;142m 142: af/af/00",    "\e[38;5;143m 143: af/af/5f",    "\e[38;5;144m 144: af/af/87",    "\e[38;5;145m 145: af/af/af",    "\e[38;5;146m 146: af/af/d7",    "\e[38;5;147m 147: af/af/ff")] );
-    push(@arr, [( "\e[38;5;148m 148: af/d7/00",    "\e[38;5;149m 149: af/d7/5f",    "\e[38;5;150m 150: af/d7/87",    "\e[38;5;151m 151: af/d7/af",    "\e[38;5;152m 152: af/d7/d7",    "\e[38;5;153m 153: af/d7/ff")] );
-    push(@arr, [( "\e[38;5;154m 154: af/ff/00",    "\e[38;5;155m 155: af/ff/5f",    "\e[38;5;156m 156: af/ff/87",    "\e[38;5;157m 157: af/ff/af",    "\e[38;5;158m 158: af/ff/d7",    "\e[38;5;159m 159: af/ff/ff")] );
-    push(@arr, [( "\e[38;5;160m 160: d7/00/00",    "\e[38;5;161m 161: d7/00/5f",    "\e[38;5;162m 162: d7/00/87",    "\e[38;5;163m 163: d7/00/af",    "\e[38;5;164m 164: d7/00/d7",    "\e[38;5;165m 165: d7/00/ff")] );
-    push(@arr, [( "\e[38;5;166m 166: d7/5f/00",    "\e[38;5;167m 167: d7/5f/5f",    "\e[38;5;168m 168: d7/5f/87",    "\e[38;5;169m 169: d7/5f/af",    "\e[38;5;170m 170: d7/5f/d7",    "\e[38;5;171m 171: d7/5f/ff")] );
-    push(@arr, [( "\e[38;5;172m 172: d7/87/00",    "\e[38;5;173m 173: d7/87/5f",    "\e[38;5;174m 174: d7/87/87",    "\e[38;5;175m 175: d7/87/af",    "\e[38;5;176m 176: d7/87/d7",    "\e[38;5;177m 177: d7/87/ff")] );
-    push(@arr, [( "\e[38;5;178m 178: d7/af/00",    "\e[38;5;179m 179: d7/af/5f",    "\e[38;5;180m 180: d7/af/87",    "\e[38;5;181m 181: d7/af/af",    "\e[38;5;182m 182: d7/af/d7",    "\e[38;5;183m 183: d7/af/ff")] );
-    push(@arr, [( "\e[38;5;184m 184: d7/d7/00",    "\e[38;5;185m 185: d7/d7/5f",    "\e[38;5;186m 186: d7/d7/87",    "\e[38;5;187m 187: d7/d7/af",    "\e[38;5;188m 188: d7/d7/d7",    "\e[38;5;189m 189: d7/d7/ff")] );
-    push(@arr, [( "\e[38;5;190m 190: d7/ff/00",    "\e[38;5;191m 191: d7/ff/5f",    "\e[38;5;192m 192: d7/ff/87",    "\e[38;5;193m 193: d7/ff/af",    "\e[38;5;194m 194: d7/ff/d7",    "\e[38;5;195m 195: d7/ff/ff")] );
-    push(@arr, [( "\e[38;5;196m 196: ff/00/00",    "\e[38;5;197m 197: ff/00/5f",    "\e[38;5;198m 198: ff/00/87",    "\e[38;5;199m 199: ff/00/af",    "\e[38;5;200m 200: ff/00/d7",    "\e[38;5;201m 201: ff/00/ff")] );
-    push(@arr, [( "\e[38;5;202m 202: ff/5f/00",    "\e[38;5;203m 203: ff/5f/5f",    "\e[38;5;204m 204: ff/5f/87",    "\e[38;5;205m 205: ff/5f/af",    "\e[38;5;206m 206: ff/5f/d7",    "\e[38;5;207m 207: ff/5f/ff")] );
-    push(@arr, [( "\e[38;5;208m 208: ff/87/00",    "\e[38;5;209m 209: ff/87/5f",    "\e[38;5;210m 210: ff/87/87",    "\e[38;5;211m 211: ff/87/af",    "\e[38;5;212m 212: ff/87/d7",    "\e[38;5;213m 213: ff/87/ff")] );
-    push(@arr, [( "\e[38;5;214m 214: ff/af/00",    "\e[38;5;215m 215: ff/af/5f",    "\e[38;5;216m 216: ff/af/87",    "\e[38;5;217m 217: ff/af/af",    "\e[38;5;218m 218: ff/af/d7",    "\e[38;5;219m 219: ff/af/ff")] );
-    push(@arr, [( "\e[38;5;220m 220: ff/d7/00",    "\e[38;5;221m 221: ff/d7/5f",    "\e[38;5;222m 222: ff/d7/87",    "\e[38;5;223m 223: ff/d7/af",    "\e[38;5;224m 224: ff/d7/d7",    "\e[38;5;225m 225: ff/d7/ff")] );
-    push(@arr, [( "\e[38;5;226m 226: ff/ff/00",    "\e[38;5;227m 227: ff/ff/5f",    "\e[38;5;228m 228: ff/ff/87",    "\e[38;5;229m 229: ff/ff/af",    "\e[38;5;230m 230: ff/ff/d7",    "\e[38;5;231m 231: ff/ff/ff")] );
-    push(@arr, [( "\e[38;5;232m 232: 08/08/08",    "\e[38;5;233m 233: 12/12/12",    "\e[38;5;234m 234: 1c/1c/1c",    "\e[38;5;235m 235: 26/26/26",    "\e[38;5;236m 236: 30/30/30",    "\e[38;5;237m 237: 3a/3a/3a")] );
-    push(@arr, [( "\e[38;5;238m 238: 44/44/44",    "\e[38;5;239m 239: 4e/4e/4e",    "\e[38;5;240m 240: 58/58/58",    "\e[38;5;241m 241: 62/62/62",    "\e[38;5;242m 242: 6c/6c/6c",    "\e[38;5;243m 243: 76/76/76")] );
-    push(@arr, [( "\e[38;5;244m 244: 80/80/80",    "\e[38;5;245m 245: 8a/8a/8a",    "\e[38;5;246m 246: 94/94/94",    "\e[38;5;247m 247: 9e/9e/9e",    "\e[38;5;248m 248: a8/a8/a8",    "\e[38;5;249m 249: b2/b2/b2")] );
-    push(@arr, [( "\e[38;5;250m 250: bc/bc/bc",    "\e[38;5;251m 251: c6/c6/c6",    "\e[38;5;252m 252: d0/d0/d0",    "\e[38;5;253m 253: da/da/da",    "\e[38;5;254m 254: e4/e4/e4",    "\e[38;5;255m 255: ee/ee/ee")] );
-
-    if( $ARGV[0] eq "-s" || $ARGV[1] eq "-s" || $ARGV[2] eq "-s" ){
-        $padding = "    ";
-    }
-    else {
-        
-    }
-
-    # display in reverse order
-    if( $ARGV[0] eq "-r" || $ARGV[1] eq "-r" || $ARGV[2] eq "-r" ){
-        for( $dimone = 0; $dimone < scalar @arr; $dimone++ ) {
-
-            $seed = ($dimone % 6) * -1;
-            for( $dimtwo = 0; $dimtwo < 6; $dimtwo++ ) {
-
-                $movone = $seed;
-                $movtwo = $seed * -1;
-
-                print $arr[$dimone][$dimtwo] . $padding;
-
-                $seed = $seed+1;
-            }
-
-            print "\n";
-        }
-    }
-    else {
-        for( $dimone = 0; $dimone < scalar @arr; $dimone++ ) {
-
-            $seed = ($dimone % 6) * -1;
-            for( $dimtwo = 0; $dimtwo < 6; $dimtwo++ ) {
-
-                $movone = $seed;
-                $movtwo = $seed * -1;
-
-                $newone = $dimone+$movone;
-                $newtwo = $dimtwo+$movtwo;
-
-                if( $newone < scalar @arr ){
-                    print $arr[$newone][$newtwo] . $padding;
-                }
-
-                $seed = $seed+1;
-            }
-
-            print "\n";
-        }
-    }
-    print "\n";
-    print "\n";
-
-}
-else {
-    print "\e[38;5;16m 16:  00/00/00\n";
-    print "\e[38;5;17m 17:  00/00/5f\n";
-    print "\e[38;5;18m 18:  00/00/87\n";
-    print "\e[38;5;19m 19:  00/00/af\n";
-    print "\e[38;5;20m 20:  00/00/d7\n";
-    print "\e[38;5;21m 21:  00/00/ff\n";
-    print "\e[38;5;22m 22:  00/5f/00\n";
-    print "\e[38;5;23m 23:  00/5f/5f\n";
-    print "\e[38;5;24m 24:  00/5f/87\n";
-    print "\e[38;5;25m 25:  00/5f/af\n";
-    print "\e[38;5;26m 26:  00/5f/d7\n";
-    print "\e[38;5;27m 27:  00/5f/ff\n";
-    print "\e[38;5;28m 28:  00/87/00\n";
-    print "\e[38;5;29m 29:  00/87/5f\n";
-    print "\e[38;5;30m 30:  00/87/87\n";
-    print "\e[38;5;31m 31:  00/87/af\n";
-    print "\e[38;5;32m 32:  00/87/d7\n";
-    print "\e[38;5;33m 33:  00/87/ff\n";
-    print "\e[38;5;34m 34:  00/af/00\n";
-    print "\e[38;5;35m 35:  00/af/5f\n";
-    print "\e[38;5;36m 36:  00/af/87\n";
-    print "\e[38;5;37m 37:  00/af/af\n";
-    print "\e[38;5;38m 38:  00/af/d7\n";
-    print "\e[38;5;39m 39:  00/af/ff\n";
-    print "\e[38;5;40m 40:  00/d7/00\n";
-    print "\e[38;5;41m 41:  00/d7/5f\n";
-    print "\e[38;5;42m 42:  00/d7/87\n";
-    print "\e[38;5;43m 43:  00/d7/af\n";
-    print "\e[38;5;44m 44:  00/d7/d7\n";
-    print "\e[38;5;45m 45:  00/d7/ff\n";
-    print "\e[38;5;46m 46:  00/ff/00\n";
-    print "\e[38;5;47m 47:  00/ff/5f\n";
-    print "\e[38;5;48m 48:  00/ff/87\n";
-    print "\e[38;5;49m 49:  00/ff/af\n";
-    print "\e[38;5;50m 50:  00/ff/d7\n";
-    print "\e[38;5;51m 51:  00/ff/ff\n";
-    print "\e[38;5;52m 52:  5f/00/00\n";
-    print "\e[38;5;53m 53:  5f/00/5f\n";
-    print "\e[38;5;54m 54:  5f/00/87\n";
-    print "\e[38;5;55m 55:  5f/00/af\n";
-    print "\e[38;5;56m 56:  5f/00/d7\n";
-    print "\e[38;5;57m 57:  5f/00/ff\n";
-    print "\e[38;5;58m 58:  5f/5f/00\n";
-    print "\e[38;5;59m 59:  5f/5f/5f\n";
-    print "\e[38;5;60m 60:  5f/5f/87\n";
-    print "\e[38;5;61m 61:  5f/5f/af\n";
-    print "\e[38;5;62m 62:  5f/5f/d7\n";
-    print "\e[38;5;63m 63:  5f/5f/ff\n";
-    print "\e[38;5;64m 64:  5f/87/00\n";
-    print "\e[38;5;65m 65:  5f/87/5f\n";
-    print "\e[38;5;66m 66:  5f/87/87\n";
-    print "\e[38;5;67m 67:  5f/87/af\n";
-    print "\e[38;5;68m 68:  5f/87/d7\n";
-    print "\e[38;5;69m 69:  5f/87/ff\n";
-    print "\e[38;5;70m 70:  5f/af/00\n";
-    print "\e[38;5;71m 71:  5f/af/5f\n";
-    print "\e[38;5;72m 72:  5f/af/87\n";
-    print "\e[38;5;73m 73:  5f/af/af\n";
-    print "\e[38;5;74m 74:  5f/af/d7\n";
-    print "\e[38;5;75m 75:  5f/af/ff\n";
-    print "\e[38;5;76m 76:  5f/d7/00\n";
-    print "\e[38;5;77m 77:  5f/d7/5f\n";
-    print "\e[38;5;78m 78:  5f/d7/87\n";
-    print "\e[38;5;79m 79:  5f/d7/af\n";
-    print "\e[38;5;80m 80:  5f/d7/d7\n";
-    print "\e[38;5;81m 81:  5f/d7/ff\n";
-    print "\e[38;5;82m 82:  5f/ff/00\n";
-    print "\e[38;5;83m 83:  5f/ff/5f\n";
-    print "\e[38;5;84m 84:  5f/ff/87\n";
-    print "\e[38;5;85m 85:  5f/ff/af\n";
-    print "\e[38;5;86m 86:  5f/ff/d7\n";
-    print "\e[38;5;87m 87:  5f/ff/ff\n";
-    print "\e[38;5;88m 88:  87/00/00\n";
-    print "\e[38;5;89m 89:  87/00/5f\n";
-    print "\e[38;5;90m 90:  87/00/87\n";
-    print "\e[38;5;91m 91:  87/00/af\n";
-    print "\e[38;5;92m 92:  87/00/d7\n";
-    print "\e[38;5;93m 93:  87/00/ff\n";
-    print "\e[38;5;94m 94:  87/5f/00\n";
-    print "\e[38;5;95m 95:  87/5f/5f\n";
-    print "\e[38;5;96m 96:  87/5f/87\n";
-    print "\e[38;5;97m 97:  87/5f/af\n";
-    print "\e[38;5;98m 98:  87/5f/d7\n";
-    print "\e[38;5;99m 99:  87/5f/ff\n";
-    print "\e[38;5;100m 100 :87/87/00\n";
-    print "\e[38;5;101m 101 :87/87/5f\n";
-    print "\e[38;5;102m 102 :87/87/87\n";
-    print "\e[38;5;103m 103 :87/87/af\n";
-    print "\e[38;5;104m 104 :87/87/d7\n";
-    print "\e[38;5;105m 105 :87/87/ff\n";
-    print "\e[38;5;106m 106 :87/af/00\n";
-    print "\e[38;5;107m 107 :87/af/5f\n";
-    print "\e[38;5;108m 108 :87/af/87\n";
-    print "\e[38;5;109m 109 :87/af/af\n";
-    print "\e[38;5;110m 110 :87/af/d7\n";
-    print "\e[38;5;111m 111 :87/af/ff\n";
-    print "\e[38;5;112m 112 :87/d7/00\n";
-    print "\e[38;5;113m 113 :87/d7/5f\n";
-    print "\e[38;5;114m 114 :87/d7/87\n";
-    print "\e[38;5;115m 115 :87/d7/af\n";
-    print "\e[38;5;116m 116 :87/d7/d7\n";
-    print "\e[38;5;117m 117 :87/d7/ff\n";
-    print "\e[38;5;118m 118 :87/ff/00\n";
-    print "\e[38;5;119m 119 :87/ff/5f\n";
-    print "\e[38;5;120m 120 :87/ff/87\n";
-    print "\e[38;5;121m 121 :87/ff/af\n";
-    print "\e[38;5;122m 122 :87/ff/d7\n";
-    print "\e[38;5;123m 123 :87/ff/ff\n";
-    print "\e[38;5;124m 124 :af/00/00\n";
-    print "\e[38;5;125m 125 :af/00/5f\n";
-    print "\e[38;5;126m 126 :af/00/87\n";
-    print "\e[38;5;127m 127 :af/00/af\n";
-    print "\e[38;5;128m 128 :af/00/d7\n";
-    print "\e[38;5;129m 129 :af/00/ff\n";
-    print "\e[38;5;130m 130 :af/5f/00\n";
-    print "\e[38;5;131m 131 :af/5f/5f\n";
-    print "\e[38;5;132m 132 :af/5f/87\n";
-    print "\e[38;5;133m 133 :af/5f/af\n";
-    print "\e[38;5;134m 134 :af/5f/d7\n";
-    print "\e[38;5;135m 135 :af/5f/ff\n";
-    print "\e[38;5;136m 136 :af/87/00\n";
-    print "\e[38;5;137m 137 :af/87/5f\n";
-    print "\e[38;5;138m 138 :af/87/87\n";
-    print "\e[38;5;139m 139 :af/87/af\n";
-    print "\e[38;5;140m 140 :af/87/d7\n";
-    print "\e[38;5;141m 141 :af/87/ff\n";
-    print "\e[38;5;142m 142 :af/af/00\n";
-    print "\e[38;5;143m 143 :af/af/5f\n";
-    print "\e[38;5;144m 144 :af/af/87\n";
-    print "\e[38;5;145m 145 :af/af/af\n";
-    print "\e[38;5;146m 146 :af/af/d7\n";
-    print "\e[38;5;147m 147 :af/af/ff\n";
-    print "\e[38;5;148m 148 :af/d7/00\n";
-    print "\e[38;5;149m 149 :af/d7/5f\n";
-    print "\e[38;5;150m 150 :af/d7/87\n";
-    print "\e[38;5;151m 151 :af/d7/af\n";
-    print "\e[38;5;152m 152 :af/d7/d7\n";
-    print "\e[38;5;153m 153 :af/d7/ff\n";
-    print "\e[38;5;154m 154 :af/ff/00\n";
-    print "\e[38;5;155m 155 :af/ff/5f\n";
-    print "\e[38;5;156m 156 :af/ff/87\n";
-    print "\e[38;5;157m 157 :af/ff/af\n";
-    print "\e[38;5;158m 158 :af/ff/d7\n";
-    print "\e[38;5;159m 159 :af/ff/ff\n";
-    print "\e[38;5;160m 160 :d7/00/00\n";
-    print "\e[38;5;161m 161 :d7/00/5f\n";
-    print "\e[38;5;162m 162 :d7/00/87\n";
-    print "\e[38;5;163m 163 :d7/00/af\n";
-    print "\e[38;5;164m 164 :d7/00/d7\n";
-    print "\e[38;5;165m 165 :d7/00/ff\n";
-    print "\e[38;5;166m 166 :d7/5f/00\n";
-    print "\e[38;5;167m 167 :d7/5f/5f\n";
-    print "\e[38;5;168m 168 :d7/5f/87\n";
-    print "\e[38;5;169m 169 :d7/5f/af\n";
-    print "\e[38;5;170m 170 :d7/5f/d7\n";
-    print "\e[38;5;171m 171 :d7/5f/ff\n";
-    print "\e[38;5;172m 172 :d7/87/00\n";
-    print "\e[38;5;173m 173 :d7/87/5f\n";
-    print "\e[38;5;174m 174 :d7/87/87\n";
-    print "\e[38;5;175m 175 :d7/87/af\n";
-    print "\e[38;5;176m 176 :d7/87/d7\n";
-    print "\e[38;5;177m 177 :d7/87/ff\n";
-    print "\e[38;5;178m 178 :d7/af/00\n";
-    print "\e[38;5;179m 179 :d7/af/5f\n";
-    print "\e[38;5;180m 180 :d7/af/87\n";
-    print "\e[38;5;181m 181 :d7/af/af\n";
-    print "\e[38;5;182m 182 :d7/af/d7\n";
-    print "\e[38;5;183m 183 :d7/af/ff\n";
-    print "\e[38;5;184m 184 :d7/d7/00\n";
-    print "\e[38;5;185m 185 :d7/d7/5f\n";
-    print "\e[38;5;186m 186 :d7/d7/87\n";
-    print "\e[38;5;187m 187 :d7/d7/af\n";
-    print "\e[38;5;188m 188 :d7/d7/d7\n";
-    print "\e[38;5;189m 189 :d7/d7/ff\n";
-    print "\e[38;5;190m 190 :d7/ff/00\n";
-    print "\e[38;5;191m 191 :d7/ff/5f\n";
-    print "\e[38;5;192m 192 :d7/ff/87\n";
-    print "\e[38;5;193m 193 :d7/ff/af\n";
-    print "\e[38;5;194m 194 :d7/ff/d7\n";
-    print "\e[38;5;195m 195 :d7/ff/ff\n";
-    print "\e[38;5;196m 196 :ff/00/00\n";
-    print "\e[38;5;197m 197 :ff/00/5f\n";
-    print "\e[38;5;198m 198 :ff/00/87\n";
-    print "\e[38;5;199m 199 :ff/00/af\n";
-    print "\e[38;5;200m 200 :ff/00/d7\n";
-    print "\e[38;5;201m 201 :ff/00/ff\n";
-    print "\e[38;5;202m 202 :ff/5f/00\n";
-    print "\e[38;5;203m 203 :ff/5f/5f\n";
-    print "\e[38;5;204m 204 :ff/5f/87\n";
-    print "\e[38;5;205m 205 :ff/5f/af\n";
-    print "\e[38;5;206m 206 :ff/5f/d7\n";
-    print "\e[38;5;207m 207 :ff/5f/ff\n";
-    print "\e[38;5;208m 208 :ff/87/00\n";
-    print "\e[38;5;209m 209 :ff/87/5f\n";
-    print "\e[38;5;210m 210 :ff/87/87\n";
-    print "\e[38;5;211m 211 :ff/87/af\n";
-    print "\e[38;5;212m 212 :ff/87/d7\n";
-    print "\e[38;5;213m 213 :ff/87/ff\n";
-    print "\e[38;5;214m 214 :ff/af/00\n";
-    print "\e[38;5;215m 215 :ff/af/5f\n";
-    print "\e[38;5;216m 216 :ff/af/87\n";
-    print "\e[38;5;217m 217 :ff/af/af\n";
-    print "\e[38;5;218m 218 :ff/af/d7\n";
-    print "\e[38;5;219m 219 :ff/af/ff\n";
-    print "\e[38;5;220m 220 :ff/d7/00\n";
-    print "\e[38;5;221m 221 :ff/d7/5f\n";
-    print "\e[38;5;222m 222 :ff/d7/87\n";
-    print "\e[38;5;223m 223 :ff/d7/af\n";
-    print "\e[38;5;224m 224 :ff/d7/d7\n";
-    print "\e[38;5;225m 225 :ff/d7/ff\n";
-    print "\e[38;5;226m 226 :ff/ff/00\n";
-    print "\e[38;5;227m 227 :ff/ff/5f\n";
-    print "\e[38;5;228m 228 :ff/ff/87\n";
-    print "\e[38;5;229m 229 :ff/ff/af\n";
-    print "\e[38;5;230m 230 :ff/ff/d7\n";
-    print "\e[38;5;231m 231 :ff/ff/ff\n";
-    print "\e[38;5;232m 232 :08/08/08\n";
-    print "\e[38;5;233m 233 :12/12/12\n";
-    print "\e[38;5;234m 234 :1c/1c/1c\n";
-    print "\e[38;5;235m 235 :26/26/26\n";
-    print "\e[38;5;236m 236 :30/30/30\n";
-    print "\e[38;5;237m 237 :3a/3a/3a\n";
-    print "\e[38;5;238m 238 :44/44/44\n";
-    print "\e[38;5;239m 239 :4e/4e/4e\n";
-    print "\e[38;5;240m 240 :58/58/58\n";
-    print "\e[38;5;241m 241 :62/62/62\n";
-    print "\e[38;5;242m 242 :6c/6c/6c\n";
-    print "\e[38;5;243m 243 :76/76/76\n";
-    print "\e[38;5;244m 244 :80/80/80\n";
-    print "\e[38;5;245m 245 :8a/8a/8a\n";
-    print "\e[38;5;246m 246 :94/94/94\n";
-    print "\e[38;5;247m 247 :9e/9e/9e\n";
-    print "\e[38;5;248m 248 :a8/a8/a8\n";
-    print "\e[38;5;249m 249 :b2/b2/b2\n";
-    print "\e[38;5;250m 250 :bc/bc/bc\n";
-    print "\e[38;5;251m 251 :c6/c6/c6\n";
-    print "\e[38;5;252m 252 :d0/d0/d0\n";
-    print "\e[38;5;253m 253 :da/da/da\n";
-    print "\e[38;5;254m 254 :e4/e4/e4\n";
-    print "\e[38;5;255m 255 :ee/ee/ee\n";
-    print "\n";
-    print "\n";
-}
-print "\e0m";
-exit;
+#!/usr/bin/env perl\r
+\r
+# by entheon, do whatever the hell you want with this file\r
+\r
+print "\n";\r
+print "**************************\n";\r
+print "*XTERM 256Color Test Chart\n";\r
+print "**************************\n";\r
+print "* 16  = black\n";\r
+print "* 255 = white\n";\r
+print "*\n";\r
+print "* Usage:\n";\r
+print "* colortest -w\n";\r
+print "*    wide display\n";\r
+print "*\n";\r
+print "* colortest -w -r\n";\r
+print "*    wide display reversed\n";\r
+print "*\n";\r
+print "* colortest -w -s\n";\r
+print "*    extra spaces padding\n";\r
+print "*\n";\r
+print "* colortest -w -r -s\n";\r
+print "*    available combination\n";\r
+print "*\n";\r
+print "**************************\n";\r
+\r
+if( $ARGV[0] eq "-w" || $ARGV[1] eq "-w" || $ARGV[2] eq "-w" ) {\r
+    push(@arr, [(  "\e[38;5;16m 16:  00/00/00",     "\e[38;5;17m 17:  00/00/5f",     "\e[38;5;18m 18:  00/00/87",     "\e[38;5;19m 19:  00/00/af",     "\e[38;5;20m 20:  00/00/d7",     "\e[38;5;21m 21:  00/00/ff")] );  \r
+    push(@arr, [(  "\e[38;5;22m 22:  00/5f/00",     "\e[38;5;23m 23:  00/5f/5f",     "\e[38;5;24m 24:  00/5f/87",     "\e[38;5;25m 25:  00/5f/af",     "\e[38;5;26m 26:  00/5f/d7",     "\e[38;5;27m 27:  00/5f/ff")] );  \r
+    push(@arr, [(  "\e[38;5;28m 28:  00/87/00",     "\e[38;5;29m 29:  00/87/5f",     "\e[38;5;30m 30:  00/87/87",     "\e[38;5;31m 31:  00/87/af",     "\e[38;5;32m 32:  00/87/d7",     "\e[38;5;33m 33:  00/87/ff")] );  \r
+    push(@arr, [(  "\e[38;5;34m 34:  00/af/00",     "\e[38;5;35m 35:  00/af/5f",     "\e[38;5;36m 36:  00/af/87",     "\e[38;5;37m 37:  00/af/af",     "\e[38;5;38m 38:  00/af/d7",     "\e[38;5;39m 39:  00/af/ff")] );  \r
+    push(@arr, [(  "\e[38;5;40m 40:  00/d7/00",     "\e[38;5;41m 41:  00/d7/5f",     "\e[38;5;42m 42:  00/d7/87",     "\e[38;5;43m 43:  00/d7/af",     "\e[38;5;44m 44:  00/d7/d7",     "\e[38;5;45m 45:  00/d7/ff")] );  \r
+    push(@arr, [(  "\e[38;5;46m 46:  00/ff/00",     "\e[38;5;47m 47:  00/ff/5f",     "\e[38;5;48m 48:  00/ff/87",     "\e[38;5;49m 49:  00/ff/af",     "\e[38;5;50m 50:  00/ff/d7",     "\e[38;5;51m 51:  00/ff/ff")] );  \r
+    push(@arr, [(  "\e[38;5;52m 52:  5f/00/00",     "\e[38;5;53m 53:  5f/00/5f",     "\e[38;5;54m 54:  5f/00/87",     "\e[38;5;55m 55:  5f/00/af",     "\e[38;5;56m 56:  5f/00/d7",     "\e[38;5;57m 57:  5f/00/ff")] );  \r
+    push(@arr, [(  "\e[38;5;58m 58:  5f/5f/00",     "\e[38;5;59m 59:  5f/5f/5f",     "\e[38;5;60m 60:  5f/5f/87",     "\e[38;5;61m 61:  5f/5f/af",     "\e[38;5;62m 62:  5f/5f/d7",     "\e[38;5;63m 63:  5f/5f/ff")] );  \r
+    push(@arr, [(  "\e[38;5;64m 64:  5f/87/00",     "\e[38;5;65m 65:  5f/87/5f",     "\e[38;5;66m 66:  5f/87/87",     "\e[38;5;67m 67:  5f/87/af",     "\e[38;5;68m 68:  5f/87/d7",     "\e[38;5;69m 69:  5f/87/ff")] );  \r
+    push(@arr, [(  "\e[38;5;70m 70:  5f/af/00",     "\e[38;5;71m 71:  5f/af/5f",     "\e[38;5;72m 72:  5f/af/87",     "\e[38;5;73m 73:  5f/af/af",     "\e[38;5;74m 74:  5f/af/d7",     "\e[38;5;75m 75:  5f/af/ff")] );  \r
+    push(@arr, [(  "\e[38;5;76m 76:  5f/d7/00",     "\e[38;5;77m 77:  5f/d7/5f",     "\e[38;5;78m 78:  5f/d7/87",     "\e[38;5;79m 79:  5f/d7/af",     "\e[38;5;80m 80:  5f/d7/d7",     "\e[38;5;81m 81:  5f/d7/ff")] );  \r
+    push(@arr, [(  "\e[38;5;82m 82:  5f/ff/00",     "\e[38;5;83m 83:  5f/ff/5f",     "\e[38;5;84m 84:  5f/ff/87",     "\e[38;5;85m 85:  5f/ff/af",     "\e[38;5;86m 86:  5f/ff/d7",     "\e[38;5;87m 87:  5f/ff/ff")] );  \r
+    push(@arr, [(  "\e[38;5;88m 88:  87/00/00",     "\e[38;5;89m 89:  87/00/5f",     "\e[38;5;90m 90:  87/00/87",     "\e[38;5;91m 91:  87/00/af",     "\e[38;5;92m 92:  87/00/d7",     "\e[38;5;93m 93:  87/00/ff")] );  \r
+    push(@arr, [(  "\e[38;5;94m 94:  87/5f/00",     "\e[38;5;95m 95:  87/5f/5f",     "\e[38;5;96m 96:  87/5f/87",     "\e[38;5;97m 97:  87/5f/af",     "\e[38;5;98m 98:  87/5f/d7",     "\e[38;5;99m 99:  87/5f/ff")] );  \r
+    push(@arr, [( "\e[38;5;100m 100: 87/87/00",    "\e[38;5;101m 101: 87/87/5f",    "\e[38;5;102m 102: 87/87/87",    "\e[38;5;103m 103: 87/87/af",    "\e[38;5;104m 104: 87/87/d7",    "\e[38;5;105m 105: 87/87/ff")] );\r
+    push(@arr, [( "\e[38;5;106m 106: 87/af/00",    "\e[38;5;107m 107: 87/af/5f",    "\e[38;5;108m 108: 87/af/87",    "\e[38;5;109m 109: 87/af/af",    "\e[38;5;110m 110: 87/af/d7",    "\e[38;5;111m 111: 87/af/ff")] );\r
+    push(@arr, [( "\e[38;5;112m 112: 87/d7/00",    "\e[38;5;113m 113: 87/d7/5f",    "\e[38;5;114m 114: 87/d7/87",    "\e[38;5;115m 115: 87/d7/af",    "\e[38;5;116m 116: 87/d7/d7",    "\e[38;5;117m 117: 87/d7/ff")] );\r
+    push(@arr, [( "\e[38;5;118m 118: 87/ff/00",    "\e[38;5;119m 119: 87/ff/5f",    "\e[38;5;120m 120: 87/ff/87",    "\e[38;5;121m 121: 87/ff/af",    "\e[38;5;122m 122: 87/ff/d7",    "\e[38;5;123m 123: 87/ff/ff")] );\r
+    push(@arr, [( "\e[38;5;124m 124: af/00/00",    "\e[38;5;125m 125: af/00/5f",    "\e[38;5;126m 126: af/00/87",    "\e[38;5;127m 127: af/00/af",    "\e[38;5;128m 128: af/00/d7",    "\e[38;5;129m 129: af/00/ff")] );\r
+    push(@arr, [( "\e[38;5;130m 130: af/5f/00",    "\e[38;5;131m 131: af/5f/5f",    "\e[38;5;132m 132: af/5f/87",    "\e[38;5;133m 133: af/5f/af",    "\e[38;5;134m 134: af/5f/d7",    "\e[38;5;135m 135: af/5f/ff")] );\r
+    push(@arr, [( "\e[38;5;136m 136: af/87/00",    "\e[38;5;137m 137: af/87/5f",    "\e[38;5;138m 138: af/87/87",    "\e[38;5;139m 139: af/87/af",    "\e[38;5;140m 140: af/87/d7",    "\e[38;5;141m 141: af/87/ff")] );\r
+    push(@arr, [( "\e[38;5;142m 142: af/af/00",    "\e[38;5;143m 143: af/af/5f",    "\e[38;5;144m 144: af/af/87",    "\e[38;5;145m 145: af/af/af",    "\e[38;5;146m 146: af/af/d7",    "\e[38;5;147m 147: af/af/ff")] );\r
+    push(@arr, [( "\e[38;5;148m 148: af/d7/00",    "\e[38;5;149m 149: af/d7/5f",    "\e[38;5;150m 150: af/d7/87",    "\e[38;5;151m 151: af/d7/af",    "\e[38;5;152m 152: af/d7/d7",    "\e[38;5;153m 153: af/d7/ff")] );\r
+    push(@arr, [( "\e[38;5;154m 154: af/ff/00",    "\e[38;5;155m 155: af/ff/5f",    "\e[38;5;156m 156: af/ff/87",    "\e[38;5;157m 157: af/ff/af",    "\e[38;5;158m 158: af/ff/d7",    "\e[38;5;159m 159: af/ff/ff")] );\r
+    push(@arr, [( "\e[38;5;160m 160: d7/00/00",    "\e[38;5;161m 161: d7/00/5f",    "\e[38;5;162m 162: d7/00/87",    "\e[38;5;163m 163: d7/00/af",    "\e[38;5;164m 164: d7/00/d7",    "\e[38;5;165m 165: d7/00/ff")] );\r
+    push(@arr, [( "\e[38;5;166m 166: d7/5f/00",    "\e[38;5;167m 167: d7/5f/5f",    "\e[38;5;168m 168: d7/5f/87",    "\e[38;5;169m 169: d7/5f/af",    "\e[38;5;170m 170: d7/5f/d7",    "\e[38;5;171m 171: d7/5f/ff")] );\r
+    push(@arr, [( "\e[38;5;172m 172: d7/87/00",    "\e[38;5;173m 173: d7/87/5f",    "\e[38;5;174m 174: d7/87/87",    "\e[38;5;175m 175: d7/87/af",    "\e[38;5;176m 176: d7/87/d7",    "\e[38;5;177m 177: d7/87/ff")] );\r
+    push(@arr, [( "\e[38;5;178m 178: d7/af/00",    "\e[38;5;179m 179: d7/af/5f",    "\e[38;5;180m 180: d7/af/87",    "\e[38;5;181m 181: d7/af/af",    "\e[38;5;182m 182: d7/af/d7",    "\e[38;5;183m 183: d7/af/ff")] );\r
+    push(@arr, [( "\e[38;5;184m 184: d7/d7/00",    "\e[38;5;185m 185: d7/d7/5f",    "\e[38;5;186m 186: d7/d7/87",    "\e[38;5;187m 187: d7/d7/af",    "\e[38;5;188m 188: d7/d7/d7",    "\e[38;5;189m 189: d7/d7/ff")] );\r
+    push(@arr, [( "\e[38;5;190m 190: d7/ff/00",    "\e[38;5;191m 191: d7/ff/5f",    "\e[38;5;192m 192: d7/ff/87",    "\e[38;5;193m 193: d7/ff/af",    "\e[38;5;194m 194: d7/ff/d7",    "\e[38;5;195m 195: d7/ff/ff")] );\r
+    push(@arr, [( "\e[38;5;196m 196: ff/00/00",    "\e[38;5;197m 197: ff/00/5f",    "\e[38;5;198m 198: ff/00/87",    "\e[38;5;199m 199: ff/00/af",    "\e[38;5;200m 200: ff/00/d7",    "\e[38;5;201m 201: ff/00/ff")] );\r
+    push(@arr, [( "\e[38;5;202m 202: ff/5f/00",    "\e[38;5;203m 203: ff/5f/5f",    "\e[38;5;204m 204: ff/5f/87",    "\e[38;5;205m 205: ff/5f/af",    "\e[38;5;206m 206: ff/5f/d7",    "\e[38;5;207m 207: ff/5f/ff")] );\r
+    push(@arr, [( "\e[38;5;208m 208: ff/87/00",    "\e[38;5;209m 209: ff/87/5f",    "\e[38;5;210m 210: ff/87/87",    "\e[38;5;211m 211: ff/87/af",    "\e[38;5;212m 212: ff/87/d7",    "\e[38;5;213m 213: ff/87/ff")] );\r
+    push(@arr, [( "\e[38;5;214m 214: ff/af/00",    "\e[38;5;215m 215: ff/af/5f",    "\e[38;5;216m 216: ff/af/87",    "\e[38;5;217m 217: ff/af/af",    "\e[38;5;218m 218: ff/af/d7",    "\e[38;5;219m 219: ff/af/ff")] );\r
+    push(@arr, [( "\e[38;5;220m 220: ff/d7/00",    "\e[38;5;221m 221: ff/d7/5f",    "\e[38;5;222m 222: ff/d7/87",    "\e[38;5;223m 223: ff/d7/af",    "\e[38;5;224m 224: ff/d7/d7",    "\e[38;5;225m 225: ff/d7/ff")] );\r
+    push(@arr, [( "\e[38;5;226m 226: ff/ff/00",    "\e[38;5;227m 227: ff/ff/5f",    "\e[38;5;228m 228: ff/ff/87",    "\e[38;5;229m 229: ff/ff/af",    "\e[38;5;230m 230: ff/ff/d7",    "\e[38;5;231m 231: ff/ff/ff")] );\r
+    push(@arr, [( "\e[38;5;232m 232: 08/08/08",    "\e[38;5;233m 233: 12/12/12",    "\e[38;5;234m 234: 1c/1c/1c",    "\e[38;5;235m 235: 26/26/26",    "\e[38;5;236m 236: 30/30/30",    "\e[38;5;237m 237: 3a/3a/3a")] );\r
+    push(@arr, [( "\e[38;5;238m 238: 44/44/44",    "\e[38;5;239m 239: 4e/4e/4e",    "\e[38;5;240m 240: 58/58/58",    "\e[38;5;241m 241: 62/62/62",    "\e[38;5;242m 242: 6c/6c/6c",    "\e[38;5;243m 243: 76/76/76")] );\r
+    push(@arr, [( "\e[38;5;244m 244: 80/80/80",    "\e[38;5;245m 245: 8a/8a/8a",    "\e[38;5;246m 246: 94/94/94",    "\e[38;5;247m 247: 9e/9e/9e",    "\e[38;5;248m 248: a8/a8/a8",    "\e[38;5;249m 249: b2/b2/b2")] );\r
+    push(@arr, [( "\e[38;5;250m 250: bc/bc/bc",    "\e[38;5;251m 251: c6/c6/c6",    "\e[38;5;252m 252: d0/d0/d0",    "\e[38;5;253m 253: da/da/da",    "\e[38;5;254m 254: e4/e4/e4",    "\e[38;5;255m 255: ee/ee/ee")] );\r
+\r
+    if( $ARGV[0] eq "-s" || $ARGV[1] eq "-s" || $ARGV[2] eq "-s" ){\r
+        $padding = "    ";\r
+    }\r
+    else {\r
+        \r
+    }\r
+\r
+    # display in reverse order\r
+    if( $ARGV[0] eq "-r" || $ARGV[1] eq "-r" || $ARGV[2] eq "-r" ){\r
+        for( $dimone = 0; $dimone < scalar @arr; $dimone++ ) {\r
+\r
+            $seed = ($dimone % 6) * -1;\r
+            for( $dimtwo = 0; $dimtwo < 6; $dimtwo++ ) {\r
+\r
+                $movone = $seed;\r
+                $movtwo = $seed * -1;\r
+\r
+                print $arr[$dimone][$dimtwo] . $padding;\r
+\r
+                $seed = $seed+1;\r
+            }\r
+\r
+            print "\n";\r
+        }\r
+    }\r
+    else {\r
+        for( $dimone = 0; $dimone < scalar @arr; $dimone++ ) {\r
+\r
+            $seed = ($dimone % 6) * -1;\r
+            for( $dimtwo = 0; $dimtwo < 6; $dimtwo++ ) {\r
+\r
+                $movone = $seed;\r
+                $movtwo = $seed * -1;\r
+\r
+                $newone = $dimone+$movone;\r
+                $newtwo = $dimtwo+$movtwo;\r
+\r
+                if( $newone < scalar @arr ){\r
+                    print $arr[$newone][$newtwo] . $padding;\r
+                }\r
+\r
+                $seed = $seed+1;\r
+            }\r
+\r
+            print "\n";\r
+        }\r
+    }\r
+    print "\n";\r
+    print "\n";\r
+\r
+}\r
+else {\r
+    print "\e[38;5;16m 16:  00/00/00\n";\r
+    print "\e[38;5;17m 17:  00/00/5f\n";\r
+    print "\e[38;5;18m 18:  00/00/87\n";\r
+    print "\e[38;5;19m 19:  00/00/af\n";\r
+    print "\e[38;5;20m 20:  00/00/d7\n";\r
+    print "\e[38;5;21m 21:  00/00/ff\n";\r
+    print "\e[38;5;22m 22:  00/5f/00\n";\r
+    print "\e[38;5;23m 23:  00/5f/5f\n";\r
+    print "\e[38;5;24m 24:  00/5f/87\n";\r
+    print "\e[38;5;25m 25:  00/5f/af\n";\r
+    print "\e[38;5;26m 26:  00/5f/d7\n";\r
+    print "\e[38;5;27m 27:  00/5f/ff\n";\r
+    print "\e[38;5;28m 28:  00/87/00\n";\r
+    print "\e[38;5;29m 29:  00/87/5f\n";\r
+    print "\e[38;5;30m 30:  00/87/87\n";\r
+    print "\e[38;5;31m 31:  00/87/af\n";\r
+    print "\e[38;5;32m 32:  00/87/d7\n";\r
+    print "\e[38;5;33m 33:  00/87/ff\n";\r
+    print "\e[38;5;34m 34:  00/af/00\n";\r
+    print "\e[38;5;35m 35:  00/af/5f\n";\r
+    print "\e[38;5;36m 36:  00/af/87\n";\r
+    print "\e[38;5;37m 37:  00/af/af\n";\r
+    print "\e[38;5;38m 38:  00/af/d7\n";\r
+    print "\e[38;5;39m 39:  00/af/ff\n";\r
+    print "\e[38;5;40m 40:  00/d7/00\n";\r
+    print "\e[38;5;41m 41:  00/d7/5f\n";\r
+    print "\e[38;5;42m 42:  00/d7/87\n";\r
+    print "\e[38;5;43m 43:  00/d7/af\n";\r
+    print "\e[38;5;44m 44:  00/d7/d7\n";\r
+    print "\e[38;5;45m 45:  00/d7/ff\n";\r
+    print "\e[38;5;46m 46:  00/ff/00\n";\r
+    print "\e[38;5;47m 47:  00/ff/5f\n";\r
+    print "\e[38;5;48m 48:  00/ff/87\n";\r
+    print "\e[38;5;49m 49:  00/ff/af\n";\r
+    print "\e[38;5;50m 50:  00/ff/d7\n";\r
+    print "\e[38;5;51m 51:  00/ff/ff\n";\r
+    print "\e[38;5;52m 52:  5f/00/00\n";\r
+    print "\e[38;5;53m 53:  5f/00/5f\n";\r
+    print "\e[38;5;54m 54:  5f/00/87\n";\r
+    print "\e[38;5;55m 55:  5f/00/af\n";\r
+    print "\e[38;5;56m 56:  5f/00/d7\n";\r
+    print "\e[38;5;57m 57:  5f/00/ff\n";\r
+    print "\e[38;5;58m 58:  5f/5f/00\n";\r
+    print "\e[38;5;59m 59:  5f/5f/5f\n";\r
+    print "\e[38;5;60m 60:  5f/5f/87\n";\r
+    print "\e[38;5;61m 61:  5f/5f/af\n";\r
+    print "\e[38;5;62m 62:  5f/5f/d7\n";\r
+    print "\e[38;5;63m 63:  5f/5f/ff\n";\r
+    print "\e[38;5;64m 64:  5f/87/00\n";\r
+    print "\e[38;5;65m 65:  5f/87/5f\n";\r
+    print "\e[38;5;66m 66:  5f/87/87\n";\r
+    print "\e[38;5;67m 67:  5f/87/af\n";\r
+    print "\e[38;5;68m 68:  5f/87/d7\n";\r
+    print "\e[38;5;69m 69:  5f/87/ff\n";\r
+    print "\e[38;5;70m 70:  5f/af/00\n";\r
+    print "\e[38;5;71m 71:  5f/af/5f\n";\r
+    print "\e[38;5;72m 72:  5f/af/87\n";\r
+    print "\e[38;5;73m 73:  5f/af/af\n";\r
+    print "\e[38;5;74m 74:  5f/af/d7\n";\r
+    print "\e[38;5;75m 75:  5f/af/ff\n";\r
+    print "\e[38;5;76m 76:  5f/d7/00\n";\r
+    print "\e[38;5;77m 77:  5f/d7/5f\n";\r
+    print "\e[38;5;78m 78:  5f/d7/87\n";\r
+    print "\e[38;5;79m 79:  5f/d7/af\n";\r
+    print "\e[38;5;80m 80:  5f/d7/d7\n";\r
+    print "\e[38;5;81m 81:  5f/d7/ff\n";\r
+    print "\e[38;5;82m 82:  5f/ff/00\n";\r
+    print "\e[38;5;83m 83:  5f/ff/5f\n";\r
+    print "\e[38;5;84m 84:  5f/ff/87\n";\r
+    print "\e[38;5;85m 85:  5f/ff/af\n";\r
+    print "\e[38;5;86m 86:  5f/ff/d7\n";\r
+    print "\e[38;5;87m 87:  5f/ff/ff\n";\r
+    print "\e[38;5;88m 88:  87/00/00\n";\r
+    print "\e[38;5;89m 89:  87/00/5f\n";\r
+    print "\e[38;5;90m 90:  87/00/87\n";\r
+    print "\e[38;5;91m 91:  87/00/af\n";\r
+    print "\e[38;5;92m 92:  87/00/d7\n";\r
+    print "\e[38;5;93m 93:  87/00/ff\n";\r
+    print "\e[38;5;94m 94:  87/5f/00\n";\r
+    print "\e[38;5;95m 95:  87/5f/5f\n";\r
+    print "\e[38;5;96m 96:  87/5f/87\n";\r
+    print "\e[38;5;97m 97:  87/5f/af\n";\r
+    print "\e[38;5;98m 98:  87/5f/d7\n";\r
+    print "\e[38;5;99m 99:  87/5f/ff\n";\r
+    print "\e[38;5;100m 100 :87/87/00\n";\r
+    print "\e[38;5;101m 101 :87/87/5f\n";\r
+    print "\e[38;5;102m 102 :87/87/87\n";\r
+    print "\e[38;5;103m 103 :87/87/af\n";\r
+    print "\e[38;5;104m 104 :87/87/d7\n";\r
+    print "\e[38;5;105m 105 :87/87/ff\n";\r
+    print "\e[38;5;106m 106 :87/af/00\n";\r
+    print "\e[38;5;107m 107 :87/af/5f\n";\r
+    print "\e[38;5;108m 108 :87/af/87\n";\r
+    print "\e[38;5;109m 109 :87/af/af\n";\r
+    print "\e[38;5;110m 110 :87/af/d7\n";\r
+    print "\e[38;5;111m 111 :87/af/ff\n";\r
+    print "\e[38;5;112m 112 :87/d7/00\n";\r
+    print "\e[38;5;113m 113 :87/d7/5f\n";\r
+    print "\e[38;5;114m 114 :87/d7/87\n";\r
+    print "\e[38;5;115m 115 :87/d7/af\n";\r
+    print "\e[38;5;116m 116 :87/d7/d7\n";\r
+    print "\e[38;5;117m 117 :87/d7/ff\n";\r
+    print "\e[38;5;118m 118 :87/ff/00\n";\r
+    print "\e[38;5;119m 119 :87/ff/5f\n";\r
+    print "\e[38;5;120m 120 :87/ff/87\n";\r
+    print "\e[38;5;121m 121 :87/ff/af\n";\r
+    print "\e[38;5;122m 122 :87/ff/d7\n";\r
+    print "\e[38;5;123m 123 :87/ff/ff\n";\r
+    print "\e[38;5;124m 124 :af/00/00\n";\r
+    print "\e[38;5;125m 125 :af/00/5f\n";\r
+    print "\e[38;5;126m 126 :af/00/87\n";\r
+    print "\e[38;5;127m 127 :af/00/af\n";\r
+    print "\e[38;5;128m 128 :af/00/d7\n";\r
+    print "\e[38;5;129m 129 :af/00/ff\n";\r
+    print "\e[38;5;130m 130 :af/5f/00\n";\r
+    print "\e[38;5;131m 131 :af/5f/5f\n";\r
+    print "\e[38;5;132m 132 :af/5f/87\n";\r
+    print "\e[38;5;133m 133 :af/5f/af\n";\r
+    print "\e[38;5;134m 134 :af/5f/d7\n";\r
+    print "\e[38;5;135m 135 :af/5f/ff\n";\r
+    print "\e[38;5;136m 136 :af/87/00\n";\r
+    print "\e[38;5;137m 137 :af/87/5f\n";\r
+    print "\e[38;5;138m 138 :af/87/87\n";\r
+    print "\e[38;5;139m 139 :af/87/af\n";\r
+    print "\e[38;5;140m 140 :af/87/d7\n";\r
+    print "\e[38;5;141m 141 :af/87/ff\n";\r
+    print "\e[38;5;142m 142 :af/af/00\n";\r
+    print "\e[38;5;143m 143 :af/af/5f\n";\r
+    print "\e[38;5;144m 144 :af/af/87\n";\r
+    print "\e[38;5;145m 145 :af/af/af\n";\r
+    print "\e[38;5;146m 146 :af/af/d7\n";\r
+    print "\e[38;5;147m 147 :af/af/ff\n";\r
+    print "\e[38;5;148m 148 :af/d7/00\n";\r
+    print "\e[38;5;149m 149 :af/d7/5f\n";\r
+    print "\e[38;5;150m 150 :af/d7/87\n";\r
+    print "\e[38;5;151m 151 :af/d7/af\n";\r
+    print "\e[38;5;152m 152 :af/d7/d7\n";\r
+    print "\e[38;5;153m 153 :af/d7/ff\n";\r
+    print "\e[38;5;154m 154 :af/ff/00\n";\r
+    print "\e[38;5;155m 155 :af/ff/5f\n";\r
+    print "\e[38;5;156m 156 :af/ff/87\n";\r
+    print "\e[38;5;157m 157 :af/ff/af\n";\r
+    print "\e[38;5;158m 158 :af/ff/d7\n";\r
+    print "\e[38;5;159m 159 :af/ff/ff\n";\r
+    print "\e[38;5;160m 160 :d7/00/00\n";\r
+    print "\e[38;5;161m 161 :d7/00/5f\n";\r
+    print "\e[38;5;162m 162 :d7/00/87\n";\r
+    print "\e[38;5;163m 163 :d7/00/af\n";\r
+    print "\e[38;5;164m 164 :d7/00/d7\n";\r
+    print "\e[38;5;165m 165 :d7/00/ff\n";\r
+    print "\e[38;5;166m 166 :d7/5f/00\n";\r
+    print "\e[38;5;167m 167 :d7/5f/5f\n";\r
+    print "\e[38;5;168m 168 :d7/5f/87\n";\r
+    print "\e[38;5;169m 169 :d7/5f/af\n";\r
+    print "\e[38;5;170m 170 :d7/5f/d7\n";\r
+    print "\e[38;5;171m 171 :d7/5f/ff\n";\r
+    print "\e[38;5;172m 172 :d7/87/00\n";\r
+    print "\e[38;5;173m 173 :d7/87/5f\n";\r
+    print "\e[38;5;174m 174 :d7/87/87\n";\r
+    print "\e[38;5;175m 175 :d7/87/af\n";\r
+    print "\e[38;5;176m 176 :d7/87/d7\n";\r
+    print "\e[38;5;177m 177 :d7/87/ff\n";\r
+    print "\e[38;5;178m 178 :d7/af/00\n";\r
+    print "\e[38;5;179m 179 :d7/af/5f\n";\r
+    print "\e[38;5;180m 180 :d7/af/87\n";\r
+    print "\e[38;5;181m 181 :d7/af/af\n";\r
+    print "\e[38;5;182m 182 :d7/af/d7\n";\r
+    print "\e[38;5;183m 183 :d7/af/ff\n";\r
+    print "\e[38;5;184m 184 :d7/d7/00\n";\r
+    print "\e[38;5;185m 185 :d7/d7/5f\n";\r
+    print "\e[38;5;186m 186 :d7/d7/87\n";\r
+    print "\e[38;5;187m 187 :d7/d7/af\n";\r
+    print "\e[38;5;188m 188 :d7/d7/d7\n";\r
+    print "\e[38;5;189m 189 :d7/d7/ff\n";\r
+    print "\e[38;5;190m 190 :d7/ff/00\n";\r
+    print "\e[38;5;191m 191 :d7/ff/5f\n";\r
+    print "\e[38;5;192m 192 :d7/ff/87\n";\r
+    print "\e[38;5;193m 193 :d7/ff/af\n";\r
+    print "\e[38;5;194m 194 :d7/ff/d7\n";\r
+    print "\e[38;5;195m 195 :d7/ff/ff\n";\r
+    print "\e[38;5;196m 196 :ff/00/00\n";\r
+    print "\e[38;5;197m 197 :ff/00/5f\n";\r
+    print "\e[38;5;198m 198 :ff/00/87\n";\r
+    print "\e[38;5;199m 199 :ff/00/af\n";\r
+    print "\e[38;5;200m 200 :ff/00/d7\n";\r
+    print "\e[38;5;201m 201 :ff/00/ff\n";\r
+    print "\e[38;5;202m 202 :ff/5f/00\n";\r
+    print "\e[38;5;203m 203 :ff/5f/5f\n";\r
+    print "\e[38;5;204m 204 :ff/5f/87\n";\r
+    print "\e[38;5;205m 205 :ff/5f/af\n";\r
+    print "\e[38;5;206m 206 :ff/5f/d7\n";\r
+    print "\e[38;5;207m 207 :ff/5f/ff\n";\r
+    print "\e[38;5;208m 208 :ff/87/00\n";\r
+    print "\e[38;5;209m 209 :ff/87/5f\n";\r
+    print "\e[38;5;210m 210 :ff/87/87\n";\r
+    print "\e[38;5;211m 211 :ff/87/af\n";\r
+    print "\e[38;5;212m 212 :ff/87/d7\n";\r
+    print "\e[38;5;213m 213 :ff/87/ff\n";\r
+    print "\e[38;5;214m 214 :ff/af/00\n";\r
+    print "\e[38;5;215m 215 :ff/af/5f\n";\r
+    print "\e[38;5;216m 216 :ff/af/87\n";\r
+    print "\e[38;5;217m 217 :ff/af/af\n";\r
+    print "\e[38;5;218m 218 :ff/af/d7\n";\r
+    print "\e[38;5;219m 219 :ff/af/ff\n";\r
+    print "\e[38;5;220m 220 :ff/d7/00\n";\r
+    print "\e[38;5;221m 221 :ff/d7/5f\n";\r
+    print "\e[38;5;222m 222 :ff/d7/87\n";\r
+    print "\e[38;5;223m 223 :ff/d7/af\n";\r
+    print "\e[38;5;224m 224 :ff/d7/d7\n";\r
+    print "\e[38;5;225m 225 :ff/d7/ff\n";\r
+    print "\e[38;5;226m 226 :ff/ff/00\n";\r
+    print "\e[38;5;227m 227 :ff/ff/5f\n";\r
+    print "\e[38;5;228m 228 :ff/ff/87\n";\r
+    print "\e[38;5;229m 229 :ff/ff/af\n";\r
+    print "\e[38;5;230m 230 :ff/ff/d7\n";\r
+    print "\e[38;5;231m 231 :ff/ff/ff\n";\r
+    print "\e[38;5;232m 232 :08/08/08\n";\r
+    print "\e[38;5;233m 233 :12/12/12\n";\r
+    print "\e[38;5;234m 234 :1c/1c/1c\n";\r
+    print "\e[38;5;235m 235 :26/26/26\n";\r
+    print "\e[38;5;236m 236 :30/30/30\n";\r
+    print "\e[38;5;237m 237 :3a/3a/3a\n";\r
+    print "\e[38;5;238m 238 :44/44/44\n";\r
+    print "\e[38;5;239m 239 :4e/4e/4e\n";\r
+    print "\e[38;5;240m 240 :58/58/58\n";\r
+    print "\e[38;5;241m 241 :62/62/62\n";\r
+    print "\e[38;5;242m 242 :6c/6c/6c\n";\r
+    print "\e[38;5;243m 243 :76/76/76\n";\r
+    print "\e[38;5;244m 244 :80/80/80\n";\r
+    print "\e[38;5;245m 245 :8a/8a/8a\n";\r
+    print "\e[38;5;246m 246 :94/94/94\n";\r
+    print "\e[38;5;247m 247 :9e/9e/9e\n";\r
+    print "\e[38;5;248m 248 :a8/a8/a8\n";\r
+    print "\e[38;5;249m 249 :b2/b2/b2\n";\r
+    print "\e[38;5;250m 250 :bc/bc/bc\n";\r
+    print "\e[38;5;251m 251 :c6/c6/c6\n";\r
+    print "\e[38;5;252m 252 :d0/d0/d0\n";\r
+    print "\e[38;5;253m 253 :da/da/da\n";\r
+    print "\e[38;5;254m 254 :e4/e4/e4\n";\r
+    print "\e[38;5;255m 255 :ee/ee/ee\n";\r
+    print "\n";\r
+    print "\n";\r
+}\r
+print "\e0m";\r
+exit;\r
index b015974e2c302a66e8eae780531484bcebc7bc2b..740bdf79d3bd3637de1952ef9a724cdf99c5e0a8 100644 (file)
@@ -1,2 +1 @@
-:@call python %~dp0\genilog.py %*\r
-@call "c:\program files (x86)\python35-32\python.exe" c:\users\59698\repos\genilog\genilog.py %*\r
+@call "c:\program files (x86)\python35-32\python.exe" C:\Projects\repos\grundfos\jaz\genilog\genilog.py %*\r
index 2ae11eaca9db64d19693589672c1be85d75c807a..25fdda9d11fb53b353695735af28d59fe7429ad0 100644 (file)
-#!/bin/sh
-# Copyright 2010 - 2012, Tim Henigan <tim.henigan@gmail.com>
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-# Perform a directory diff between commits in the repository using
-# the external diff or merge tool specified in the user's config.
-
-USAGE='[--cached] [--copy-back] [-x|--extcmd=<command>] <commit>{0,2} [-- <path>*]
-
-    --cached     Compare to the index rather than the working tree.
-
-    --copy-back  Copy files back to the working tree when the diff
-                 tool exits (in case they were modified by the
-                 user).  This option is only valid if the diff
-                 compared with the working tree.
-
-    -x=<command>
-    --extcmd=<command>  Specify a custom command for viewing diffs.
-                 git-diffall ignores the configured defaults and
-                 runs $command $LOCAL $REMOTE when this option is
-                 specified. Additionally, $BASE is set in the
-                 environment.
-'
-
-SUBDIRECTORY_OK=1
-. "$(git --exec-path)/git-sh-setup"
-
-TOOL_MODE=diff
-. "$(git --exec-path)/git-mergetool--lib"
-
-merge_tool="$(get_merge_tool)"
-if test -z "$merge_tool"
-then
-                    echo "Error: Either the 'diff.tool' or 'merge.tool' option must be set."
-                    usage
-fi
-
-start_dir=$(pwd)
-
-# All the file paths returned by the diff command are relative to the root
-# of the working copy. So if the script is called from a subdirectory, it
-# must switch to the root of working copy before trying to use those paths.
-cdup=$(git rev-parse --show-cdup) &&
-cd "$cdup" || {
-                    echo >&2 "Cannot chdir to $cdup, the toplevel of the working tree"
-                    exit 1
-}
-
-# set up temp dir
-tmp=$(perl -e 'use File::Temp qw(tempdir);
-                    $t=tempdir("/tmp/git-diffall.XXXXX") or exit(1);
-                    print $t') || exit 1
-#trap 'rm -rf "$tmp"' EXIT
-
-left=
-right=
-paths=
-dashdash_seen=
-compare_staged=
-merge_base=
-left_dir=
-right_dir=
-diff_tool=
-copy_back=
-
-while test $# != 0
-do
-                    case "$1" in
-                    -h|--h|--he|--hel|--help)
-                                        usage
-                                        ;;
-                    --cached)
-                                        compare_staged=1
-                                        ;;
-                    --copy-back)
-                                        copy_back=1
-                                        ;;
-                    -x|--e|--ex|--ext|--extc|--extcm|--extcmd)
-                                        if test $# = 1
-                                        then
-                                                            echo You must specify the tool for use with --extcmd
-                                                            usage
-                                        else
-                                                            diff_tool=$2
-                                                            shift
-                                        fi
-                                        ;;
-                    --)
-                                        dashdash_seen=1
-                                        ;;
-                    -*)
-                                        echo Invalid option: "$1"
-                                        usage
-                                        ;;
-                    *)
-                                        # could be commit, commit range or path limiter
-                                        case "$1" in
-                                        *...*)
-                                                            left=${1%...*}
-                                                            right=${1#*...}
-                                                            merge_base=1
-                                                            ;;
-                                        *..*)
-                                                            left=${1%..*}
-                                                            right=${1#*..}
-                                                            ;;
-                                        *)
-                                                            if test -n "$dashdash_seen"
-                                                            then
-                                                                                paths="$paths$1 "
-                                                            elif test -z "$left"
-                                                            then
-                                                                                left=$1
-                                                            elif test -z "$right"
-                                                            then
-                                                                                right=$1
-                                                            else
-                                                                                paths="$paths$1 "
-                                                            fi
-                                                            ;;
-                                        esac
-                                        ;;
-                    esac
-                    shift
-done
-
-# Determine the set of files which changed
-if test -n "$left" && test -n "$right"
-then
-                    left_dir="cmt-$(git rev-parse --short $left)"
-                    right_dir="cmt-$(git rev-parse --short $right)"
-
-                    if test -n "$compare_staged"
-                    then
-                                        usage
-                    elif test -n "$merge_base"
-                    then
-                                        git diff --name-only "$left"..."$right" -- $paths >"$tmp/filelist"
-                    else
-                                        git diff --name-only "$left" "$right" -- $paths >"$tmp/filelist"
-                    fi
-elif test -n "$left"
-then
-                    left_dir="cmt-$(git rev-parse --short $left)"
-
-                    if test -n "$compare_staged"
-                    then
-                                        right_dir="staged"
-                                        git diff --name-only --cached "$left" -- $paths >"$tmp/filelist"
-                    else
-                                        right_dir="working_tree"
-                                        git diff --name-only "$left" -- $paths >"$tmp/filelist"
-                    fi
-else
-                    left_dir="HEAD"
-
-                    if test -n "$compare_staged"
-                    then
-                                        right_dir="staged"
-                                        git diff --name-only --cached -- $paths >"$tmp/filelist"
-                    else
-                                        right_dir="working_tree"
-                                        git diff --name-only -- $paths >"$tmp/filelist"
-                    fi
-fi
-
-# Exit immediately if there are no diffs
-if test ! -s "$tmp/filelist"
-then
-                    exit 0
-fi
-
-if test -n "$copy_back" && test "$right_dir" != "working_tree"
-then
-                    echo "--copy-back is only valid when diff includes the working tree."
-                    exit 1
-fi
-
-# Create the named tmp directories that will hold the files to be compared
-mkdir -p "$tmp/$left_dir" "$tmp/$right_dir"
-
-# Populate the tmp/right_dir directory with the files to be compared
-while read name
-do
-                    if test -n "$right"
-                    then
-                                        ls_list=$(git ls-tree $right "$name")
-                                        if test -n "$ls_list"
-                                        then
-                                                            mkdir -p "$tmp/$right_dir/$(dirname "$name")"
-                                                            git show "$right":"$name" >"$tmp/$right_dir/$name" || true
-                                        fi
-                    elif test -n "$compare_staged"
-                    then
-                                        ls_list=$(git ls-files -- "$name")
-                                        if test -n "$ls_list"
-                                        then
-                                                            mkdir -p "$tmp/$right_dir/$(dirname "$name")"
-                                                            git show :"$name" >"$tmp/$right_dir/$name"
-                                        fi
-                    else
-                                        if test -e "$name"
-                                        then
-                                                            mkdir -p "$tmp/$right_dir/$(dirname "$name")"
-                                                            cp "$name" "$tmp/$right_dir/$name"
-                                        fi
-                    fi
-done < "$tmp/filelist"
-
-# Populate the tmp/left_dir directory with the files to be compared
-while read name
-do
-                    if test -n "$left"
-                    then
-                                        ls_list=$(git ls-tree $left "$name")
-                                        if test -n "$ls_list"
-                                        then
-                                                            mkdir -p "$tmp/$left_dir/$(dirname "$name")"
-                                                            git show "$left":"$name" >"$tmp/$left_dir/$name" || true
-                                        fi
-                    else
-                                        if test -n "$compare_staged"
-                                        then
-                                                            ls_list=$(git ls-tree HEAD "$name")
-                                                            if test -n "$ls_list"
-                                                            then
-                                                                                mkdir -p "$tmp/$left_dir/$(dirname "$name")"
-                                                                                git show HEAD:"$name" >"$tmp/$left_dir/$name"
-                                                            fi
-                                        else
-                                                            mkdir -p "$tmp/$left_dir/$(dirname "$name")"
-                                                            git show :"$name" >"$tmp/$left_dir/$name"
-                                        fi
-                    fi
-done < "$tmp/filelist"
-
-LOCAL="$tmp/$left_dir"
-REMOTE="$tmp/$right_dir"
-
-if test -n "$diff_tool"
-then
-                    export BASE
-                    eval $diff_tool '"$LOCAL"' '"$REMOTE"'
-else
-                    run_merge_tool "$merge_tool" false
-fi
-
-# Copy files back to the working dir, if requested
-if test -n "$copy_back" && test "$right_dir" = "working_tree"
-then
-                    cd "$start_dir"
-                    git_top_dir=$(git rev-parse --show-toplevel)
-                    find "$tmp/$right_dir" -type f |
-                    while read file
-                    do
-                                        cp "$file" "$git_top_dir/${file#$tmp/$right_dir/}"
-                    done
+#!/bin/sh\r
+# Copyright 2010 - 2012, Tim Henigan <tim.henigan@gmail.com>\r
+#\r
+# Permission is hereby granted, free of charge, to any person obtaining\r
+# a copy of this software and associated documentation files (the\r
+# "Software"), to deal in the Software without restriction, including\r
+# without limitation the rights to use, copy, modify, merge, publish,\r
+# distribute, sublicense, and/or sell copies of the Software, and to\r
+# permit persons to whom the Software is furnished to do so, subject to\r
+# the following conditions:\r
+#\r
+# The above copyright notice and this permission notice shall be included\r
+# in all copies or substantial portions of the Software.\r
+#\r
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r
+# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r
+# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
+\r
+\r
+# Perform a directory diff between commits in the repository using\r
+# the external diff or merge tool specified in the user's config.\r
+\r
+USAGE='[--cached] [--copy-back] [-x|--extcmd=<command>] <commit>{0,2} [-- <path>*]\r
+\r
+    --cached     Compare to the index rather than the working tree.\r
+\r
+    --copy-back  Copy files back to the working tree when the diff\r
+                 tool exits (in case they were modified by the\r
+                 user).  This option is only valid if the diff\r
+                 compared with the working tree.\r
+\r
+    -x=<command>\r
+    --extcmd=<command>  Specify a custom command for viewing diffs.\r
+                 git-diffall ignores the configured defaults and\r
+                 runs $command $LOCAL $REMOTE when this option is\r
+                 specified. Additionally, $BASE is set in the\r
+                 environment.\r
+'\r
+\r
+SUBDIRECTORY_OK=1\r
+. "$(git --exec-path)/git-sh-setup"\r
+\r
+TOOL_MODE=diff\r
+. "$(git --exec-path)/git-mergetool--lib"\r
+\r
+merge_tool="$(get_merge_tool)"\r
+if test -z "$merge_tool"\r
+then\r
+                    echo "Error: Either the 'diff.tool' or 'merge.tool' option must be set."\r
+                    usage\r
+fi\r
+\r
+start_dir=$(pwd)\r
+\r
+# All the file paths returned by the diff command are relative to the root\r
+# of the working copy. So if the script is called from a subdirectory, it\r
+# must switch to the root of working copy before trying to use those paths.\r
+cdup=$(git rev-parse --show-cdup) &&\r
+cd "$cdup" || {\r
+                    echo >&2 "Cannot chdir to $cdup, the toplevel of the working tree"\r
+                    exit 1\r
+}\r
+\r
+# set up temp dir\r
+tmp=$(perl -e 'use File::Temp qw(tempdir);\r
+                    $t=tempdir("/tmp/git-diffall.XXXXX") or exit(1);\r
+                    print $t') || exit 1\r
+#trap 'rm -rf "$tmp"' EXIT\r
+\r
+left=\r
+right=\r
+paths=\r
+dashdash_seen=\r
+compare_staged=\r
+merge_base=\r
+left_dir=\r
+right_dir=\r
+diff_tool=\r
+copy_back=\r
+\r
+while test $# != 0\r
+do\r
+                    case "$1" in\r
+                    -h|--h|--he|--hel|--help)\r
+                                        usage\r
+                                        ;;\r
+                    --cached)\r
+                                        compare_staged=1\r
+                                        ;;\r
+                    --copy-back)\r
+                                        copy_back=1\r
+                                        ;;\r
+                    -x|--e|--ex|--ext|--extc|--extcm|--extcmd)\r
+                                        if test $# = 1\r
+                                        then\r
+                                                            echo You must specify the tool for use with --extcmd\r
+                                                            usage\r
+                                        else\r
+                                                            diff_tool=$2\r
+                                                            shift\r
+                                        fi\r
+                                        ;;\r
+                    --)\r
+                                        dashdash_seen=1\r
+                                        ;;\r
+                    -*)\r
+                                        echo Invalid option: "$1"\r
+                                        usage\r
+                                        ;;\r
+                    *)\r
+                                        # could be commit, commit range or path limiter\r
+                                        case "$1" in\r
+                                        *...*)\r
+                                                            left=${1%...*}\r
+                                                            right=${1#*...}\r
+                                                            merge_base=1\r
+                                                            ;;\r
+                                        *..*)\r
+                                                            left=${1%..*}\r
+                                                            right=${1#*..}\r
+                                                            ;;\r
+                                        *)\r
+                                                            if test -n "$dashdash_seen"\r
+                                                            then\r
+                                                                                paths="$paths$1 "\r
+                                                            elif test -z "$left"\r
+                                                            then\r
+                                                                                left=$1\r
+                                                            elif test -z "$right"\r
+                                                            then\r
+                                                                                right=$1\r
+                                                            else\r
+                                                                                paths="$paths$1 "\r
+                                                            fi\r
+                                                            ;;\r
+                                        esac\r
+                                        ;;\r
+                    esac\r
+                    shift\r
+done\r
+\r
+# Determine the set of files which changed\r
+if test -n "$left" && test -n "$right"\r
+then\r
+                    left_dir="cmt-$(git rev-parse --short $left)"\r
+                    right_dir="cmt-$(git rev-parse --short $right)"\r
+\r
+                    if test -n "$compare_staged"\r
+                    then\r
+                                        usage\r
+                    elif test -n "$merge_base"\r
+                    then\r
+                                        git diff --name-only "$left"..."$right" -- $paths >"$tmp/filelist"\r
+                    else\r
+                                        git diff --name-only "$left" "$right" -- $paths >"$tmp/filelist"\r
+                    fi\r
+elif test -n "$left"\r
+then\r
+                    left_dir="cmt-$(git rev-parse --short $left)"\r
+\r
+                    if test -n "$compare_staged"\r
+                    then\r
+                                        right_dir="staged"\r
+                                        git diff --name-only --cached "$left" -- $paths >"$tmp/filelist"\r
+                    else\r
+                                        right_dir="working_tree"\r
+                                        git diff --name-only "$left" -- $paths >"$tmp/filelist"\r
+                    fi\r
+else\r
+                    left_dir="HEAD"\r
+\r
+                    if test -n "$compare_staged"\r
+                    then\r
+                                        right_dir="staged"\r
+                                        git diff --name-only --cached -- $paths >"$tmp/filelist"\r
+                    else\r
+                                        right_dir="working_tree"\r
+                                        git diff --name-only -- $paths >"$tmp/filelist"\r
+                    fi\r
+fi\r
+\r
+# Exit immediately if there are no diffs\r
+if test ! -s "$tmp/filelist"\r
+then\r
+                    exit 0\r
+fi\r
+\r
+if test -n "$copy_back" && test "$right_dir" != "working_tree"\r
+then\r
+                    echo "--copy-back is only valid when diff includes the working tree."\r
+                    exit 1\r
+fi\r
+\r
+# Create the named tmp directories that will hold the files to be compared\r
+mkdir -p "$tmp/$left_dir" "$tmp/$right_dir"\r
+\r
+# Populate the tmp/right_dir directory with the files to be compared\r
+while read name\r
+do\r
+                    if test -n "$right"\r
+                    then\r
+                                        ls_list=$(git ls-tree $right "$name")\r
+                                        if test -n "$ls_list"\r
+                                        then\r
+                                                            mkdir -p "$tmp/$right_dir/$(dirname "$name")"\r
+                                                            git show "$right":"$name" >"$tmp/$right_dir/$name" || true\r
+                                        fi\r
+                    elif test -n "$compare_staged"\r
+                    then\r
+                                        ls_list=$(git ls-files -- "$name")\r
+                                        if test -n "$ls_list"\r
+                                        then\r
+                                                            mkdir -p "$tmp/$right_dir/$(dirname "$name")"\r
+                                                            git show :"$name" >"$tmp/$right_dir/$name"\r
+                                        fi\r
+                    else\r
+                                        if test -e "$name"\r
+                                        then\r
+                                                            mkdir -p "$tmp/$right_dir/$(dirname "$name")"\r
+                                                            cp "$name" "$tmp/$right_dir/$name"\r
+                                        fi\r
+                    fi\r
+done < "$tmp/filelist"\r
+\r
+# Populate the tmp/left_dir directory with the files to be compared\r
+while read name\r
+do\r
+                    if test -n "$left"\r
+                    then\r
+                                        ls_list=$(git ls-tree $left "$name")\r
+                                        if test -n "$ls_list"\r
+                                        then\r
+                                                            mkdir -p "$tmp/$left_dir/$(dirname "$name")"\r
+                                                            git show "$left":"$name" >"$tmp/$left_dir/$name" || true\r
+                                        fi\r
+                    else\r
+                                        if test -n "$compare_staged"\r
+                                        then\r
+                                                            ls_list=$(git ls-tree HEAD "$name")\r
+                                                            if test -n "$ls_list"\r
+                                                            then\r
+                                                                                mkdir -p "$tmp/$left_dir/$(dirname "$name")"\r
+                                                                                git show HEAD:"$name" >"$tmp/$left_dir/$name"\r
+                                                            fi\r
+                                        else\r
+                                                            mkdir -p "$tmp/$left_dir/$(dirname "$name")"\r
+                                                            git show :"$name" >"$tmp/$left_dir/$name"\r
+                                        fi\r
+                    fi\r
+done < "$tmp/filelist"\r
+\r
+LOCAL="$tmp/$left_dir"\r
+REMOTE="$tmp/$right_dir"\r
+\r
+if test -n "$diff_tool"\r
+then\r
+                    export BASE\r
+                    eval $diff_tool '"$LOCAL"' '"$REMOTE"'\r
+else\r
+                    run_merge_tool "$merge_tool" false\r
+fi\r
+\r
+# Copy files back to the working dir, if requested\r
+if test -n "$copy_back" && test "$right_dir" = "working_tree"\r
+then\r
+                    cd "$start_dir"\r
+                    git_top_dir=$(git rev-parse --show-toplevel)\r
+                    find "$tmp/$right_dir" -type f |\r
+                    while read file\r
+                    do\r
+                                        cp "$file" "$git_top_dir/${file#$tmp/$right_dir/}"\r
+                    done\r
 fi
\ No newline at end of file
index 19fdcd589d925576efa32dee0f5573713ce0d645..6260e94d4614d0d754333074eea244e7898edc22 100644 (file)
@@ -1,3 +1,3 @@
-TOOL=vimdiff
-ARG=$@
-$TOOL $ARG
+TOOL=vimdiff\r
+ARG=$@\r
+$TOOL $ARG\r
index 0e904c289f13b7c51c10bd59eae3320997063ae6..10932c4018a82374a7af639a99308f6f49e23ce9 100644 (file)
@@ -1,4 +1,4 @@
-#!/bin/bash
-TOOL=vim
-ARG=$@
-$TOOL $ARG
+#!/bin/bash\r
+TOOL=vim\r
+ARG=$@\r
+$TOOL $ARG\r
index 3c1e79efbaa16518173360f3ceb307a10f52c41b..5837b55cf56959d08233d596d14d4fcef476232c 100644 (file)
@@ -1,4 +1,4 @@
-#! /bin/bash
-TOOL=vimdiff
-ARG=$@
-$TOOL $ARG
+#! /bin/bash\r
+TOOL=vimdiff\r
+ARG=$@\r
+$TOOL $ARG\r
index 9c1ba04e1b23d4f92b9e9a720142d4f7a2609781..0a9a5800d9bde49fb5bc1c4a6ae0dbeaa485d269 100644 (file)
-#!/usr/bin/env python
-from __future__ import print_function
-
-COPYRIGHT = """\
-Copyright (C) 2011-2012 OpenStack LLC.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-implied.
-
-See the License for the specific language governing permissions and
-limitations under the License."""
-
-import datetime
-import json
-import os
-import re
-import shlex
-import subprocess
-import sys
-import time
-
-if sys.version < '3':
-    import ConfigParser
-    import urllib
-    import urlparse
-    urlopen = urllib.urlopen
-    urlparse = urlparse.urlparse
-    do_input = raw_input
-else:
-    import configparser as ConfigParser
-    import urllib.parse
-    import urllib.request
-    urlopen = urllib.request.urlopen
-    urlparse = urllib.parse.urlparse
-    do_input = input
-
-from distutils import version as du_version
-
-version = "1.22"
-
-VERBOSE = False
-UPDATE = False
-CONFIGDIR = os.path.expanduser("~/.config/git-review")
-GLOBAL_CONFIG = "/etc/git-review/git-review.conf"
-USER_CONFIG = os.path.join(CONFIGDIR, "git-review.conf")
-PYPI_URL = "http://pypi.python.org/pypi/git-review/json"
-PYPI_CACHE_TIME = 60 * 60 * 24  # 24 hours
-DEFAULTS = dict(hostname='gerrit.lud.stericsson.com', port='29418', project=False,
-                defaultbranch='master', defaultremote="gerrit",
-                defaultrebase="0")
-
-_branch_name = None
-_has_color = None
-_no_color_support = False
-
-
-class colors:
-    yellow = '\033[33m'
-    green = '\033[92m'
-    reset = '\033[0m'
-
-
-class GitReviewException(Exception):
-    pass
-
-
-class CommandFailed(GitReviewException):
-
-    def __init__(self, *args):
-        Exception.__init__(self, *args)
-        (self.rc, self.output, self.argv, self.envp) = args
-        self.quickmsg = dict([
-            ("argv", " ".join(self.argv)),
-            ("rc", self.rc),
-            ("output", self.output)])
-
-    def __str__(self):
-        return self.__doc__ + """
-The following command failed with exit code %(rc)d
-    "%(argv)s"
------------------------
-%(output)s
------------------------""" % self.quickmsg
-
-
-class ChangeSetException(GitReviewException):
-
-    def __init__(self, e):
-        GitReviewException.__init__(self)
-        self.e = str(e)
-
-    def __str__(self):
-        return self.__doc__ % self.e
-
-
-def parse_review_number(review):
-    parts = review.split(',')
-    if len(parts) < 2:
-        parts.append(None)
-    return parts
-
-
-def build_review_number(review, patchset):
-    if patchset is not None:
-        return '%s,%s' % (review, patchset)
-    return review
-
-
-def run_command_status(*argv, **env):
-    if VERBOSE:
-        print(datetime.datetime.now(), "Running:", " ".join(argv))
-    if len(argv) == 1:
-        argv = shlex.split(str(argv[0]))
-    newenv = os.environ
-    newenv.update(env)
-    p = subprocess.Popen(argv, stdout=subprocess.PIPE,
-                         stderr=subprocess.STDOUT, env=newenv)
-    (out, nothing) = p.communicate()
-    out = out.decode('utf-8')
-    return (p.returncode, out.strip())
-
-
-def run_command(*argv, **env):
-    (rc, output) = run_command_status(*argv, **env)
-    return output
-
-
-def run_command_exc(klazz, *argv, **env):
-    """Run command *argv, on failure raise 'klazz
-
-    klass should be derived from CommandFailed
-    """
-    (rc, output) = run_command_status(*argv, **env)
-    if rc != 0:
-        raise klazz(rc, output, argv, env)
-    return output
-
-
-def update_latest_version(version_file_path):
-    """Cache the latest version of git-review for the upgrade check."""
-
-    if not os.path.exists(CONFIGDIR):
-        os.makedirs(CONFIGDIR)
-
-    if os.path.exists(version_file_path) and not UPDATE:
-        if (time.time() - os.path.getmtime(version_file_path)) < 28800:
-            return
-
-    latest_version = version
-    try:
-        latest_version = json.load(urlopen(PYPI_URL))['info']['version']
-    except Exception:
-        pass
-
-    with open(version_file_path, "w") as version_file:
-        version_file.write(latest_version)
-
-
-def latest_is_newer():
-    """Check if there is a new version of git-review."""
-
-    # Skip version check if distro package turns it off
-    if os.path.exists(GLOBAL_CONFIG):
-        config = dict(check=False)
-        configParser = ConfigParser.ConfigParser(config)
-        configParser.read(GLOBAL_CONFIG)
-        if not configParser.getboolean("updates", "check"):
-            return False
-
-    version_file_path = os.path.join(CONFIGDIR, "latest-version")
-    update_latest_version(version_file_path)
-
-    latest_version = None
-    with open(version_file_path, "r") as version_file:
-        latest_version = du_version.StrictVersion(version_file.read())
-    if latest_version > du_version.StrictVersion(version):
-        return True
-    return False
-
-
-def git_directories():
-    """Determine (absolute git work directory path, .git subdirectory path)."""
-    cmd = ("git", "rev-parse", "--show-toplevel", "--git-dir")
-    out = run_command_exc(GitDirectoriesException, *cmd)
-    try:
-        return out.split()
-    except ValueError:
-        raise GitDirectoriesException(0, out, cmd, {})
-
-
-class GitDirectoriesException(CommandFailed):
-    "Cannot determine where .git directory is."
-    EXIT_CODE = 70
-
-
-class CustomScriptException(CommandFailed):
-    """Custom script execution failed."""
-    EXIT_CODE = 71
-
-
-def run_custom_script(action):
-    """Get status and output of .git/hooks/$action-review or/and
-    ~/.config/hooks/$action-review if existing.
-    """
-    returns = []
-    script_file = "%s-review" % (action)
-    (top_dir, git_dir) = git_directories()
-    paths = [os.path.join(CONFIGDIR, "hooks", script_file),
-             os.path.join(git_dir, "hooks", script_file)]
-    for fpath in paths:
-        if os.path.isfile(fpath) and os.access(fpath, os.X_OK):
-            status, output = run_command_status(fpath)
-            returns.append((status, output, fpath))
-
-    for (status, output, path) in returns:
-        if status is not None and status != 0:
-            raise CustomScriptException(status, output, [path], {})
-        elif output and VERBOSE:
-            print("script %s output is:" % (path))
-            print(output)
-
-
-def git_config_get_value(section, option, default=None):
-    try:
-        return run_command_exc(GitConfigException,
-                               "git", "config",
-                               "--get",
-                               "%s.%s" % (section, option)).strip()
-    except GitConfigException as exc:
-        if exc.rc == 1:
-            return default
-        raise
-
-
-class GitConfigException(CommandFailed):
-    """Git config value retrieval failed."""
-    EXIT_CODE = 128
-
-
-class CannotInstallHook(CommandFailed):
-    "Problems encountered installing commit-msg hook"
-    EXIT_CODE = 2
-
-
-def set_hooks_commit_msg(remote, target_file):
-    """Install the commit message hook if needed."""
-
-    # Create the hooks directory if it's not there already
-    hooks_dir = os.path.dirname(target_file)
-    if not os.path.isdir(hooks_dir):
-        os.mkdir(hooks_dir)
-
-    (hostname, username, port, project_name) = \
-        parse_git_show(remote, "Push")
-
-    if not os.path.exists(target_file) or UPDATE:
-        if VERBOSE:
-            print("Fetching commit hook from: scp://%s:%s" % (hostname, port))
-        if port is not None:
-            port = "-P %s" % port
-        else:
-            port = ""
-        if username is None:
-            userhost = hostname
-        else:
-            userhost = "%s@%s" % (username, hostname)
-        run_command_exc(
-            CannotInstallHook,
-            "scp", port,
-            userhost + ":hooks/commit-msg",
-            target_file)
-
-    if not os.access(target_file, os.X_OK):
-        os.chmod(target_file, os.path.stat.S_IREAD | os.path.stat.S_IEXEC)
-
-
-def test_remote(username, hostname, port, project):
-    """Tests that a possible gerrit remote works."""
-
-    if port is not None:
-        port = "-p %s" % port
-    else:
-        port = ""
-    if username is None:
-        userhost = hostname
-    else:
-        userhost = "%s@%s" % (username, hostname)
-
-    (status, ssh_output) = run_command_status(
-        "ssh", "-x", port, userhost,
-        "gerrit", "ls-projects")
-
-    if status == 0:
-        if VERBOSE:
-            print("%s@%s:%s worked." % (username, hostname, port))
-        return True
-    else:
-        if VERBOSE:
-            print("%s@%s:%s did not work." % (username, hostname, port))
-        return False
-
-
-def make_remote_url(username, hostname, port, project):
-    """Builds a gerrit remote URL."""
-    if username is None:
-        return "ssh://%s:%s/%s" % (hostname, port, project)
-    else:
-        return "ssh://%s@%s:%s/%s" % (username, hostname, port, project)
-
-
-def add_remote(hostname, port, project, remote):
-    """Adds a gerrit remote."""
-    asked_for_username = False
-
-    username = os.getenv("USERNAME")
-    if not username:
-        username = git_config_get_value("gitreview", "username")
-    if not username:
-        username = os.getenv("USER")
-    if port is None:
-        port = 29418
-
-    remote_url = make_remote_url(username, hostname, port, project)
-    if VERBOSE:
-        print("No remote set, testing %s" % remote_url)
-    if not test_remote(username, hostname, port, project):
-        print("Could not connect to gerrit.")
-        username = do_input("Enter your gerrit username: ")
-        remote_url = make_remote_url(username, hostname, port, project)
-        print("Trying again with %s" % remote_url)
-        if not test_remote(username, hostname, port, project):
-            raise Exception("Could not connect to gerrit at %s" % remote_url)
-        asked_for_username = True
-
-    print("Creating a git remote called \"%s\" that maps to:" % remote)
-    print("\t%s" % remote_url)
-    cmd = "git remote add -f %s %s" % (remote, remote_url)
-    (status, remote_output) = run_command_status(cmd)
-
-    if status != 0:
-        raise Exception("Error running %s" % cmd)
-
-    if asked_for_username:
-        print()
-        print("This repository is now set up for use with git-review.")
-        print("You can set the default username for future repositories with:")
-        print('  git config --global --add gitreview.username "%s"' % username)
-        print()
-
-
-def parse_git_show(remote, verb):
-    fetch_url = ""
-    for line in run_command("git remote show -n %s" % remote).split("\n"):
-        if line.strip().startswith("%s" % verb):
-            fetch_url = line.split()[2]
-
-    parsed_url = urlparse(fetch_url)
-    project_name = parsed_url.path.lstrip("/")
-    if project_name.endswith(".git"):
-        project_name = project_name[:-4]
-
-    hostname = parsed_url.netloc
-    username = None
-    port = parsed_url.port
-
-    if VERBOSE:
-        print("Found origin %s URL:" % verb, fetch_url)
-
-    # Workaround bug in urlparse on OSX
-    if parsed_url.scheme == "ssh" and parsed_url.path[:2] == "//":
-        hostname = parsed_url.path[2:].split("/")[0]
-
-    if "@" in hostname:
-        (username, hostname) = hostname.split("@")
-    if ":" in hostname:
-        (hostname, port) = hostname.split(":")
-
-    # Is origin an ssh location? Let's pull more info
-    if parsed_url.scheme == "ssh" and port is None:
-        port = 22
-
-    return (hostname, username, str(port), project_name)
-
-
-def check_color_support():
-    global _has_color
-    global _no_color_support
-    if _has_color is None:
-        test_command = "git log --color=never --oneline HEAD^1..HEAD"
-        (status, output) = run_command_status(test_command)
-        if status == 0:
-            _has_color = True
-        else:
-            _has_color = False
-            
-    if _no_color_support:
-      _has_color = False
-
-    return _has_color
-
-
-def get_config(config_file=None):
-    """Generate the configuration map by starting with some built-in defaults
-    and then loading GLOBAL_CONFIG, USER_CONFIG, and a repository-specific
-    .gitreview file, if they exist. In case of conflict, the configuration file
-    with the narrowest scope wins.
-    """
-    config = DEFAULTS.copy()
-    for filename in (GLOBAL_CONFIG, USER_CONFIG, config_file):
-        if filename is not None and os.path.exists(filename):
-            config.update(load_config_file(filename))
-    return config
-
-
-def load_config_file(config_file):
-    """Load configuration options from a file."""
-    configParser = ConfigParser.ConfigParser()
-    configParser.read(config_file)
-    options = {
-        'hostname': 'host',
-        'port': 'port',
-        'project': 'project',
-        'defaultbranch': 'defaultbranch',
-        'defaultremote': 'defaultremote',
-        'defaultrebase': 'defaultrebase',
-    }
-    config = {}
-    for config_key, option_name in options.items():
-        if configParser.has_option('gerrit', option_name):
-            config[config_key] = configParser.get('gerrit', option_name)
-    return config
-
-
-def update_remote(remote):
-    cmd = "git remote update %s" % remote
-    (status, output) = run_command_status(cmd)
-    if VERBOSE:
-        print(output)
-    if status != 0:
-        print("Problem running '%s'" % cmd)
-        if not VERBOSE:
-            print(output)
-        return False
-    return True
-
-
-def check_remote(branch, remote, hostname, port, project):
-    """Check that a Gerrit Git remote repo exists, if not, set one."""
-
-    has_color = check_color_support()
-    if has_color:
-        color_never = "--color=never"
-    else:
-        color_never = ""
-
-    if remote in run_command("git remote").split("\n"):
-
-        remotes = run_command("git branch -a %s" % color_never).split("\n")
-        for current_remote in remotes:
-            if (current_remote.strip() == "remotes/%s/%s" % (remote, branch)
-                    and not UPDATE):
-                return
-        # We have the remote, but aren't set up to fetch. Fix it
-        if VERBOSE:
-            print("Setting up gerrit branch tracking for better rebasing")
-        update_remote(remote)
-        return
-
-    if hostname is False or port is False or project is False:
-        # This means there was no .gitreview file
-        print("No '.gitreview' file found in this repository.")
-        print("We don't know where your gerrit is. Please manually create ")
-        print("a remote named \"%s\" and try again." % remote)
-        sys.exit(1)
-
-    # Gerrit remote not present, try to add it
-    try:
-        add_remote(hostname, port, project, remote)
-    except Exception:
-        print(sys.exc_info()[2])
-        print("We don't know where your gerrit is. Please manually create ")
-        print("a remote named \"%s\" and try again." % remote)
-        raise
-
-
-def rebase_changes(branch, remote, interactive=True):
-
-    remote_branch = "remotes/%s/%s" % (remote, branch)
-
-    if not update_remote(remote):
-        return False
-
-    if interactive:
-        cmd = "git rebase -i %s" % remote_branch
-    else:
-        cmd = "git rebase %s" % remote_branch
-
-    (status, output) = run_command_status(cmd, GIT_EDITOR='true')
-    if status != 0:
-        print("Errors running %s" % cmd)
-        if interactive:
-            print(output)
-        return False
-    return True
-
-
-def undo_rebase():
-    cmd = "git reset --hard ORIG_HEAD"
-    (status, output) = run_command_status(cmd)
-    if status != 0:
-        print("Errors running %s" % cmd)
-        print(output)
-        return False
-    return True
-
-
-def get_branch_name(target_branch):
-    global _branch_name
-    if _branch_name is not None:
-        return _branch_name
-    _branch_name = None
-    has_color = check_color_support()
-    if has_color:
-        color_never = "--color=never"
-    else:
-        color_never = ""
-    for branch in run_command("git branch %s" % color_never).split("\n"):
-        if branch.startswith('*'):
-            _branch_name = branch.split()[1].strip()
-    if _branch_name == "(no":
-        _branch_name = target_branch
-    return _branch_name
-
-
-def assert_one_change(remote, branch, yes, have_hook):
-    has_color = check_color_support()
-    if has_color:
-        color = git_config_get_value("color", "ui")
-        if color is None:
-            color = "auto"
-        else:
-            color = color.lower()
-        if (color == "" or color == "true"):
-            color = "auto"
-        elif color == "false":
-            color = "never"
-        elif color == "auto":
-            # Python is not a tty, we have to force colors
-            color = "always"
-        use_color = "--color=%s" % color
-    else:
-        use_color = ""
-    cmd = "git log %s --decorate --oneline HEAD --not remotes/%s/%s --" % (
-        use_color, remote, branch)
-    (status, output) = run_command_status(cmd)
-    if status != 0:
-        print("Had trouble running %s" % cmd)
-        print(output)
-        sys.exit(1)
-    output_lines = len(output.split("\n"))
-    if output_lines == 1 and not have_hook:
-        print("Your change was committed before the commit hook was installed")
-        print("Amending the commit to add a gerrit change id")
-        run_command("git commit --amend", GIT_EDITOR='true')
-    elif output_lines == 0:
-        print("No changes between HEAD and %s/%s." % (remote, branch))
-        print("Submitting for review would be pointless.")
-        sys.exit(1)
-    elif output_lines > 1:
-        if not yes:
-            print("You have more than one commit"
-                  " that you are about to submit.")
-            print("The outstanding commits are:\n\n%s\n" % output)
-            print("Is this really what you meant to do?")
-            yes_no = do_input("Type 'yes' to confirm: ")
-            if yes_no.lower().strip() != "yes":
-                print("Aborting.")
-                print("Please rebase/squash your changes and try again")
-                sys.exit(1)
-
-
-def use_topic(why, topic):
-    """Inform the user about why a particular topic has been selected."""
-    if VERBOSE:
-        print(why % ('"%s"' % topic,))
-    return topic
-
-
-def get_topic(target_branch):
-
-    branch_name = get_branch_name(target_branch)
-
-    branch_parts = branch_name.split("/")
-    if len(branch_parts) >= 3 and branch_parts[0] == "review":
-        return use_topic("Using change number %s "
-                         "for the topic of the change submitted",
-                         "/".join(branch_parts[2:]))
-
-    log_output = run_command("git log HEAD^1..HEAD")
-    bug_re = r'\b([Bb]ug|[Ll][Pp])\s*[#:]?\s*(\d+)'
-
-    match = re.search(bug_re, log_output)
-    if match is not None:
-        return use_topic("Using bug number %s "
-                         "for the topic of the change submitted",
-                         "bug/%s" % match.group(2))
-
-    bp_re = r'\b([Bb]lue[Pp]rint|[Bb][Pp])\s*[#:]?\s*([0-9a-zA-Z-_]+)'
-    match = re.search(bp_re, log_output)
-    if match is not None:
-        return use_topic("Using blueprint number %s "
-                         "for the topic of the change submitted",
-                         "bp/%s" % match.group(2))
-
-    return use_topic("Using local branch name %s "
-                     "for the topic of the change submitted",
-                     branch_name)
-
-
-class CannotQueryOpenChangesets(CommandFailed):
-    "Cannot fetch review information from gerrit"
-    EXIT_CODE = 32
-
-
-class CannotParseOpenChangesets(ChangeSetException):
-    "Cannot parse JSON review information from gerrit"
-    EXIT_CODE = 33
-
-
-def list_reviews(remote):
-
-    (hostname, username, port, project_name) = \
-        parse_git_show(remote, "Push")
-
-    if port is not None:
-        port = "-p %s" % port
-    else:
-        port = ""
-    if username is None:
-        userhost = hostname
-    else:
-        userhost = "%s@%s" % (username, hostname)
-
-    review_info = None
-    output = run_command_exc(
-        CannotQueryOpenChangesets,
-        "ssh", "-x", port, userhost,
-        "gerrit", "query",
-        "--current-patch-set --format=JSON project:%s status:open reviewer:self" % project_name)
-
-    review_list = []
-    review_field_width = {}
-    REVIEW_FIELDS = ('number', 'currentPatchSet', 'branch', 'subject')
-    FIELDS = range(0, len(REVIEW_FIELDS))
-    if check_color_support():
-        review_field_color = (colors.yellow, colors.yellow, colors.green, "")
-        color_reset = colors.reset
-    else:
-        review_field_color = ("", "", "", "")
-        color_reset = ""
-    review_field_width = [0, 0, 0, 0]
-    review_field_format = ["%*s", "%*s", "%*s", "%*s"]
-    review_field_justify = [+1, +1, +1, -1]  # -1 is justify to right
-
-    for line in output.split("\n"):
-        # Warnings from ssh wind up in this output
-        if line[0] != "{":
-            print(line)
-            continue
-        try:
-            review_info = json.loads(line)
-        except Exception:
-            if VERBOSE:
-                print(output)
-            raise(CannotParseOpenChangesets, sys.exc_info()[1])
-
-        if 'type' in review_info:
-            break
-
-        tempPS = review_info['currentPatchSet']
-        appPS = tempPS['approvals']
-        appValue = '-';
-        for appLine in appPS:
-          appBy = appLine['by']
-          appUser = appBy['username']
-          if appUser == username:
-            appValue = appLine['value']
-        review_info['currentPatchSet'] = tempPS['number'] + ' ' + appValue
-        
-        review_list.append([review_info[f] for f in REVIEW_FIELDS])
-        for i in FIELDS:
-            review_field_width[i] = max(
-                review_field_width[i],
-                len(review_info[REVIEW_FIELDS[i]])
-            )
-
-    review_field_format = "  ".join([
-        review_field_color[i] +
-        review_field_format[i] +
-        color_reset
-        for i in FIELDS])
-
-    review_field_width = [
-        review_field_width[i] * review_field_justify[i]
-        for i in FIELDS]
-    for review_value in review_list:
-        # At this point we have review_field_format
-        # like "%*s %*s %*s" and we need to supply
-        # (width1, value1, width2, value2, ...) tuple to print
-        # It's easy to zip() widths with actual values,
-        # but we need to flatten the resulting
-        #  ((width1, value1), (width2, value2), ...) map.
-        formatted_fields = []
-        for (width, value) in zip(review_field_width, review_value):
-            formatted_fields.extend([width, value])
-        print(review_field_format % tuple(formatted_fields))
-    print("Found %d items for review" % review_info['rowCount'])
-
-    return 0
-
-
-class CannotQueryPatchSet(CommandFailed):
-    "Cannot query patchset information"
-    EXIT_CODE = 34
-
-
-class ReviewInformationNotFound(ChangeSetException):
-    "Could not fetch review information for change %s"
-    EXIT_CODE = 35
-
-
-class ReviewNotFound(ChangeSetException):
-    "Gerrit review %s not found"
-    EXIT_CODE = 36
-
-
-class PatchSetGitFetchFailed(CommandFailed):
-    """Cannot fetch patchset contents
-
-Does specified change number belong to this project?
-"""
-    EXIT_CODE = 37
-
-
-class PatchSetNotFound(ChangeSetException):
-    "Review patchset %s not found"
-    EXIT_CODE = 38
-
-
-class CheckoutNewBranchFailed(CommandFailed):
-    "Cannot checkout to new branch"
-    EXIT_CODE = 64
-
-
-class CheckoutExistingBranchFailed(CommandFailed):
-    "Cannot checkout existing branch"
-    EXIT_CODE = 65
-
-
-class ResetHardFailed(CommandFailed):
-    "Failed to hard reset downloaded branch"
-    EXIT_CODE = 66
-
-
-def fetch_review(review, masterbranch, remote):
-
-    (hostname, username, port, project_name) = \
-        parse_git_show(remote, "Push")
-
-    if port is not None:
-        port = "-p %s" % port
-    else:
-        port = ""
-    if username is None:
-        userhost = hostname
-    else:
-        userhost = "%s@%s" % (username, hostname)
-
-    review_arg = review
-    patchset_opt = '--current-patch-set'
-
-    review, patchset_number = parse_review_number(review)
-    if patchset_number is not None:
-        patchset_opt = '--patch-sets'
-
-    review_info = None
-    output = run_command_exc(
-        CannotQueryPatchSet,
-        "ssh", "-x", port, userhost,
-        "gerrit", "query",
-        "--format=JSON %s change:%s" % (patchset_opt, review))
-
-    review_jsons = output.split("\n")
-    found_review = False
-    for review_json in review_jsons:
-        try:
-            review_info = json.loads(review_json)
-            found_review = True
-        except Exception:
-            pass
-        if found_review:
-            break
-    if not found_review:
-        if VERBOSE:
-            print(output)
-        raise ReviewInformationNotFound(review)
-
-    try:
-        if patchset_number is None:
-            refspec = review_info['currentPatchSet']['ref']
-        else:
-            refspec = [ps for ps
-                       in review_info['patchSets']
-                       if ps['number'] == patchset_number][0]['ref']
-    except IndexError:
-        raise PatchSetNotFound(review_arg)
-    except KeyError:
-        raise ReviewNotFound(review)
-
-    try:
-        topic = review_info['topic']
-        if topic == masterbranch:
-            topic = review
-    except KeyError:
-        topic = review
-    try:
-        author = re.sub('\W+', '_', review_info['owner']['name']).lower()
-    except KeyError:
-        author = 'unknown'
-
-    if patchset_number is None:
-        branch_name = "review/%s/%s" % (author, topic)
-    else:
-        branch_name = "review/%s/%s-patch%s" % (author, topic, patchset_number)
-
-    print("Downloading %s from gerrit" % refspec)
-    run_command_exc(PatchSetGitFetchFailed,
-                    "git", "fetch", remote, refspec)
-    return branch_name
-
-
-def checkout_review(branch_name):
-    """Checkout a newly fetched (FETCH_HEAD) change
-       into a branch
-    """
-
-    try:
-        run_command_exc(CheckoutNewBranchFailed,
-                        "git", "checkout", "-b",
-                        branch_name, "FETCH_HEAD")
-
-    except CheckoutNewBranchFailed as e:
-        if re.search("already exists\.?", e.output):
-            print("Branch already exists - reusing")
-            run_command_exc(CheckoutExistingBranchFailed,
-                            "git", "checkout", branch_name)
-            run_command_exc(ResetHardFailed,
-                            "git", "reset", "--hard", "FETCH_HEAD")
-        else:
-            raise
-
-    print("Switched to branch \"%s\"" % branch_name)
-
-
-class PatchSetGitCherrypickFailed(CommandFailed):
-    "There was a problem applying changeset contents to the current branch."
-    EXIT_CODE = 69
-
-
-def cherrypick_review(option=None):
-    cmd = ["git", "cherry-pick"]
-    if option:
-        cmd.append(option)
-    cmd.append("FETCH_HEAD")
-    print(run_command_exc(PatchSetGitCherrypickFailed, *cmd))
-
-
-class CheckoutBackExistingBranchFailed(CommandFailed):
-    "Cannot switch back to existing branch"
-    EXIT_CODE = 67
-
-
-class DeleteBranchFailed(CommandFailed):
-    "Failed to delete branch"
-    EXIT_CODE = 68
-
-
-class InvalidPatchsetsToCompare(GitReviewException):
-    def __init__(self, patchsetA, patchsetB):
-        Exception.__init__(
-            self,
-            "Invalid patchsets for comparison specified (old=%s,new=%s)" % (
-                patchsetA,
-                patchsetB))
-    EXIT_CODE = 39
-
-
-def compare_review(review_spec, branch, remote, rebase=False):
-    new_ps = None    # none means latest
-
-    if '-' in review_spec:
-        review_spec, new_ps = review_spec.split('-')
-    review, old_ps = parse_review_number(review_spec)
-
-    if old_ps is None or old_ps == new_ps:
-        raise InvalidPatchsetsToCompare(old_ps, new_ps)
-
-    old_review = build_review_number(review, old_ps)
-    new_review = build_review_number(review, new_ps)
-
-    old_branch = fetch_review(old_review, branch, remote)
-    checkout_review(old_branch)
-
-    if rebase:
-        print('Rebasing %s' % old_branch)
-        rebase = rebase_changes(branch, remote, False)
-        if not rebase:
-            print('Skipping rebase because of conflicts')
-            run_command_exc(CommandFailed, 'git', 'rebase', '--abort')
-
-    new_branch = fetch_review(new_review, branch, remote)
-    checkout_review(new_branch)
-
-    if rebase:
-        print('Rebasing also %s' % new_branch)
-        if not rebase_changes(branch, remote, False):
-            print("Rebasing of the new branch failed, "
-                  "diff can be messed up (use -R to not rebase at all)!")
-            run_command_exc(CommandFailed, 'git', 'rebase', '--abort')
-
-    subprocess.check_call(['git', 'difftool', old_branch])
-
-
-def finish_branch(target_branch):
-    local_branch = get_branch_name(target_branch)
-    if VERBOSE:
-        print("Switching back to '%s' and deleting '%s'" % (target_branch,
-                                                            local_branch))
-    run_command_exc(CheckoutBackExistingBranchFailed,
-                    "git", "checkout", target_branch)
-    print("Switched to branch '%s'" % target_branch)
-
-    run_command_exc(DeleteBranchFailed,
-                    "git", "branch", "-D", local_branch)
-    print("Deleted branch '%s'" % local_branch)
-
-
-def convert_bool(one_or_zero):
-    "Return a bool on a one or zero string."
-    return one_or_zero in ["1", "true", "True"]
-
-
-def print_exit_message(status, needs_update):
-
-    if needs_update:
-        print("""
-***********************************************************
-A new version of git-review is available on PyPI. Please
-update your copy with:
-
-  pip install -U git-review
-
-to ensure proper behavior with gerrit. Thanks!
-***********************************************************
-""")
-    sys.exit(status)
-
-
-def main():
-    global _no_color_support
-    usage = "git review [OPTIONS] ... [BRANCH]"
-
-    import argparse
-
-    class DownloadFlag(argparse.Action):
-        """Additional option parsing: store value in 'dest', but
-           at the same time set one of the flag options to True
-        """
-        def __call__(self, parser, namespace, values, option_string=None):
-            setattr(namespace, self.dest, values)
-            setattr(namespace, self.const, True)
-
-    parser = argparse.ArgumentParser(usage=usage, description=COPYRIGHT)
-
-    parser.add_argument("-t", "--topic", dest="topic",
-                        help="Topic to submit branch to")
-    parser.add_argument("-D", "--draft", dest="draft", action="store_true",
-                        help="Submit review as a draft")
-    parser.add_argument("-c", "--compatible", dest="compatible",
-                        action="store_true",
-                        help="Push change to refs/for/* for compatibility "
-                             "with Gerrit versions < 2.3. Ignored if "
-                             "-D/--draft is used.")
-    parser.add_argument("-n", "--dry-run", dest="dry", action="store_true",
-                        help="Don't actually submit the branch for review")
-    parser.add_argument("-i", "--new-changeid", dest="regenerate",
-                        action="store_true",
-                        help="Regenerate Change-id before submitting")
-    parser.add_argument("-r", "--remote", dest="remote",
-                        help="git remote to use for gerrit")
-    parser.add_argument("-R", "--no-rebase", dest="rebase",
-                        action="store_false",
-                        help="Don't rebase changes before submitting.")
-    parser.add_argument("-F", "--force-rebase", dest="force_rebase",
-                        action="store_true",
-                        help="Force rebase even when not needed.")
-    parser.add_argument("-B", "--no-color", dest="no_color_support",
-                        action="store_true",
-                        help="No color support.")
-                        
-
-    fetch = parser.add_mutually_exclusive_group()
-    fetch.set_defaults(download=False, compare=False, cherrypickcommit=False,
-                       cherrypickindicate=False, cherrypickonly=False)
-    fetch.add_argument("-d", "--download", dest="changeidentifier",
-                       action=DownloadFlag, metavar="CHANGE",
-                       const="download",
-                       help="Download the contents of an existing gerrit "
-                            "review into a branch")
-    fetch.add_argument("-x", "--cherrypick", dest="changeidentifier",
-                       action=DownloadFlag, metavar="CHANGE",
-                       const="cherrypickcommit",
-                       help="Apply the contents of an existing gerrit "
-                             "review onto the current branch and commit "
-                             "(cherry pick; not recommended in most "
-                             "situations)")
-    fetch.add_argument("-X", "--cherrypickindicate", dest="changeidentifier",
-                       action=DownloadFlag, metavar="CHANGE",
-                       const="cherrypickindicate",
-                       help="Apply the contents of an existing gerrit "
-                       "review onto the current branch and commit, "
-                       "indicating its origin")
-    fetch.add_argument("-N", "--cherrypickonly", dest="changeidentifier",
-                       action=DownloadFlag, metavar="CHANGE",
-                       const="cherrypickonly",
-                       help="Apply the contents of an existing gerrit "
-                       "review to the working directory and prepare "
-                       "for commit")
-    fetch.add_argument("-m", "--compare", dest="changeidentifier",
-                       action=DownloadFlag, metavar="CHANGE,PS[-NEW_PS]",
-                       const="compare",
-                       help="Download specified and latest (or NEW_PS) "
-                       "patchsets of an existing gerrit review into "
-                       "a branches, rebase on master "
-                       "(skipped on conflicts or when -R is specified) "
-                       "and show their differences")
-
-    parser.add_argument("-u", "--update", dest="update", action="store_true",
-                        help="Force updates from remote locations")
-    parser.add_argument("-s", "--setup", dest="setup", action="store_true",
-                        help="Just run the repo setup commands but don't "
-                             "submit anything")
-    parser.add_argument("-f", "--finish", dest="finish", action="store_true",
-                        help="Close down this branch and switch back to "
-                             "master on successful submission")
-    parser.add_argument("-l", "--list", dest="list", action="store_true",
-                        help="List available reviews for the current project")
-    parser.add_argument("-y", "--yes", dest="yes", action="store_true",
-                        help="Indicate that you do, in fact, understand if "
-                             "you are submitting more than one patch")
-    parser.add_argument("-v", "--verbose", dest="verbose", action="store_true",
-                        help="Output more information about what's going on")
-    parser.add_argument("--no-custom-script", dest="custom_script",
-                        action="store_false", default=True,
-                        help="Do not run custom scripts.")
-    parser.add_argument("--license", dest="license", action="store_true",
-                        help="Print the license and exit")
-    parser.add_argument("--version", action="version",
-                        version='%s version %s' %
-                        (os.path.split(sys.argv[0])[-1], version))
-    parser.add_argument("branch", nargs="?")
-
-    try:
-        (top_dir, git_dir) = git_directories()
-    except GitDirectoriesException:
-        if sys.argv[1:] in ([], ['-h'], ['--help']):
-            parser.print_help()
-            sys.exit(1)
-        raise
-
-#    config = get_config(os.path.join(top_dir, ".gitreview"))
-    config = DEFAULTS.copy()       
-    cur_proj = run_command("git remote -v")
-    import re
-    m = re.search('(?<=29418\/)(\S+)', cur_proj)
-    config['project'] = m.group(0) 
-
-    
-    defaultrebase = convert_bool(
-        git_config_get_value("gitreview", "rebase",
-                             default=str(config['defaultrebase'])))
-    parser.set_defaults(dry=False,
-                        draft=False,
-                        rebase=defaultrebase,
-                        verbose=False,
-                        update=False,
-                        setup=False,
-                        list=False,
-                        yes=False,
-                        branch=config['defaultbranch'],
-                        remote=config['defaultremote'])
-    options = parser.parse_args()
-
-    if options.license:
-        print(COPYRIGHT)
-        sys.exit(0)
-
-    branch = options.branch
-    global VERBOSE
-    global UPDATE
-    VERBOSE = options.verbose
-    UPDATE = options.update
-    remote = options.remote
-    yes = options.yes
-    status = 0
-
-    needs_update = latest_is_newer()
-    check_remote(branch, remote,
-                 config['hostname'], config['port'], config['project'])
-
-    if options.no_color_support:
-      _no_color_support = True
-
-    if options.changeidentifier:
-        if options.compare:
-            compare_review(options.changeidentifier,
-                           branch, remote, options.rebase)
-            return
-        local_branch = fetch_review(options.changeidentifier, branch, remote)
-        if options.download:
-            checkout_review(local_branch)
-        else:
-            if options.cherrypickcommit:
-                cherrypick_review()
-            elif options.cherrypickonly:
-                cherrypick_review("-n")
-            if options.cherrypickindicate:
-                cherrypick_review("-x")
-        return
-    elif options.list:
-        list_reviews(remote)
-        return
-
-    if options.custom_script:
-        run_custom_script("pre")
-
-    hook_file = os.path.join(git_dir, "hooks", "commit-msg")
-    have_hook = os.path.exists(hook_file) and os.access(hook_file, os.X_OK)
-
-    if not have_hook:
-        set_hooks_commit_msg(remote, hook_file)
-
-    if options.setup:
-        if options.finish and not options.dry:
-            finish_branch(branch)
-        return
-
-    if options.rebase:
-        if not rebase_changes(branch, remote):
-            print_exit_message(1, needs_update)
-        if not options.force_rebase and not undo_rebase():
-            print_exit_message(1, needs_update)
-    assert_one_change(remote, branch, yes, have_hook)
-
-    ref = "publish"
-
-    if options.draft:
-        ref = "drafts"
-        if options.custom_script:
-            run_custom_script("draft")
-    elif options.compatible:
-        ref = "for"
-
-    cmd = "git push %s HEAD:refs/%s/%s" % (remote, ref, branch)
-    topic = options.topic or get_topic(branch)
-    if topic != branch:
-        cmd += "/%s" % topic
-    if options.regenerate:
-        print("Amending the commit to regenerate the change id\n")
-        regenerate_cmd = "git commit --amend"
-        if options.dry:
-            print("\tGIT_EDITOR=\"sed -i -e '/^Change-Id:/d'\" %s\n" %
-                  regenerate_cmd)
-        else:
-            run_command(regenerate_cmd,
-                        GIT_EDITOR="sed -i -e "
-                        "'/^Change-Id:/d'")
-
-    if options.dry:
-        print("Please use the following command "
-              "to send your commits to review:\n")
-        print("\t%s\n" % cmd)
-    else:
-        (status, output) = run_command_status(cmd)
-        print(output)
-
-    if options.finish and not options.dry and status == 0:
-        finish_branch(branch)
-        return
-
-    if options.custom_script:
-        run_custom_script("post")
-    print_exit_message(status, needs_update)
-
-
-if __name__ == "__main__":
-    try:
-        main()
-    except GitReviewException as e:
-        print(e)
-        sys.exit(e.EXIT_CODE)
+#!/usr/bin/env python\r
+from __future__ import print_function\r
+\r
+COPYRIGHT = """\\r
+Copyright (C) 2011-2012 OpenStack LLC.\r
+\r
+Licensed under the Apache License, Version 2.0 (the "License");\r
+you may not use this file except in compliance with the License.\r
+You may obtain a copy of the License at\r
+\r
+   http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+Unless required by applicable law or agreed to in writing, software\r
+distributed under the License is distributed on an "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\r
+implied.\r
+\r
+See the License for the specific language governing permissions and\r
+limitations under the License."""\r
+\r
+import datetime\r
+import json\r
+import os\r
+import re\r
+import shlex\r
+import subprocess\r
+import sys\r
+import time\r
+\r
+if sys.version < '3':\r
+    import ConfigParser\r
+    import urllib\r
+    import urlparse\r
+    urlopen = urllib.urlopen\r
+    urlparse = urlparse.urlparse\r
+    do_input = raw_input\r
+else:\r
+    import configparser as ConfigParser\r
+    import urllib.parse\r
+    import urllib.request\r
+    urlopen = urllib.request.urlopen\r
+    urlparse = urllib.parse.urlparse\r
+    do_input = input\r
+\r
+from distutils import version as du_version\r
+\r
+version = "1.22"\r
+\r
+VERBOSE = False\r
+UPDATE = False\r
+CONFIGDIR = os.path.expanduser("~/.config/git-review")\r
+GLOBAL_CONFIG = "/etc/git-review/git-review.conf"\r
+USER_CONFIG = os.path.join(CONFIGDIR, "git-review.conf")\r
+PYPI_URL = "http://pypi.python.org/pypi/git-review/json"\r
+PYPI_CACHE_TIME = 60 * 60 * 24  # 24 hours\r
+DEFAULTS = dict(hostname='gerrit.lud.stericsson.com', port='29418', project=False,\r
+                defaultbranch='master', defaultremote="gerrit",\r
+                defaultrebase="0")\r
+\r
+_branch_name = None\r
+_has_color = None\r
+_no_color_support = False\r
+\r
+\r
+class colors:\r
+    yellow = '\033[33m'\r
+    green = '\033[92m'\r
+    reset = '\033[0m'\r
+\r
+\r
+class GitReviewException(Exception):\r
+    pass\r
+\r
+\r
+class CommandFailed(GitReviewException):\r
+\r
+    def __init__(self, *args):\r
+        Exception.__init__(self, *args)\r
+        (self.rc, self.output, self.argv, self.envp) = args\r
+        self.quickmsg = dict([\r
+            ("argv", " ".join(self.argv)),\r
+            ("rc", self.rc),\r
+            ("output", self.output)])\r
+\r
+    def __str__(self):\r
+        return self.__doc__ + """\r
+The following command failed with exit code %(rc)d\r
+    "%(argv)s"\r
+-----------------------\r
+%(output)s\r
+-----------------------""" % self.quickmsg\r
+\r
+\r
+class ChangeSetException(GitReviewException):\r
+\r
+    def __init__(self, e):\r
+        GitReviewException.__init__(self)\r
+        self.e = str(e)\r
+\r
+    def __str__(self):\r
+        return self.__doc__ % self.e\r
+\r
+\r
+def parse_review_number(review):\r
+    parts = review.split(',')\r
+    if len(parts) < 2:\r
+        parts.append(None)\r
+    return parts\r
+\r
+\r
+def build_review_number(review, patchset):\r
+    if patchset is not None:\r
+        return '%s,%s' % (review, patchset)\r
+    return review\r
+\r
+\r
+def run_command_status(*argv, **env):\r
+    if VERBOSE:\r
+        print(datetime.datetime.now(), "Running:", " ".join(argv))\r
+    if len(argv) == 1:\r
+        argv = shlex.split(str(argv[0]))\r
+    newenv = os.environ\r
+    newenv.update(env)\r
+    p = subprocess.Popen(argv, stdout=subprocess.PIPE,\r
+                         stderr=subprocess.STDOUT, env=newenv)\r
+    (out, nothing) = p.communicate()\r
+    out = out.decode('utf-8')\r
+    return (p.returncode, out.strip())\r
+\r
+\r
+def run_command(*argv, **env):\r
+    (rc, output) = run_command_status(*argv, **env)\r
+    return output\r
+\r
+\r
+def run_command_exc(klazz, *argv, **env):\r
+    """Run command *argv, on failure raise 'klazz\r
+\r
+    klass should be derived from CommandFailed\r
+    """\r
+    (rc, output) = run_command_status(*argv, **env)\r
+    if rc != 0:\r
+        raise klazz(rc, output, argv, env)\r
+    return output\r
+\r
+\r
+def update_latest_version(version_file_path):\r
+    """Cache the latest version of git-review for the upgrade check."""\r
+\r
+    if not os.path.exists(CONFIGDIR):\r
+        os.makedirs(CONFIGDIR)\r
+\r
+    if os.path.exists(version_file_path) and not UPDATE:\r
+        if (time.time() - os.path.getmtime(version_file_path)) < 28800:\r
+            return\r
+\r
+    latest_version = version\r
+    try:\r
+        latest_version = json.load(urlopen(PYPI_URL))['info']['version']\r
+    except Exception:\r
+        pass\r
+\r
+    with open(version_file_path, "w") as version_file:\r
+        version_file.write(latest_version)\r
+\r
+\r
+def latest_is_newer():\r
+    """Check if there is a new version of git-review."""\r
+\r
+    # Skip version check if distro package turns it off\r
+    if os.path.exists(GLOBAL_CONFIG):\r
+        config = dict(check=False)\r
+        configParser = ConfigParser.ConfigParser(config)\r
+        configParser.read(GLOBAL_CONFIG)\r
+        if not configParser.getboolean("updates", "check"):\r
+            return False\r
+\r
+    version_file_path = os.path.join(CONFIGDIR, "latest-version")\r
+    update_latest_version(version_file_path)\r
+\r
+    latest_version = None\r
+    with open(version_file_path, "r") as version_file:\r
+        latest_version = du_version.StrictVersion(version_file.read())\r
+    if latest_version > du_version.StrictVersion(version):\r
+        return True\r
+    return False\r
+\r
+\r
+def git_directories():\r
+    """Determine (absolute git work directory path, .git subdirectory path)."""\r
+    cmd = ("git", "rev-parse", "--show-toplevel", "--git-dir")\r
+    out = run_command_exc(GitDirectoriesException, *cmd)\r
+    try:\r
+        return out.split()\r
+    except ValueError:\r
+        raise GitDirectoriesException(0, out, cmd, {})\r
+\r
+\r
+class GitDirectoriesException(CommandFailed):\r
+    "Cannot determine where .git directory is."\r
+    EXIT_CODE = 70\r
+\r
+\r
+class CustomScriptException(CommandFailed):\r
+    """Custom script execution failed."""\r
+    EXIT_CODE = 71\r
+\r
+\r
+def run_custom_script(action):\r
+    """Get status and output of .git/hooks/$action-review or/and\r
+    ~/.config/hooks/$action-review if existing.\r
+    """\r
+    returns = []\r
+    script_file = "%s-review" % (action)\r
+    (top_dir, git_dir) = git_directories()\r
+    paths = [os.path.join(CONFIGDIR, "hooks", script_file),\r
+             os.path.join(git_dir, "hooks", script_file)]\r
+    for fpath in paths:\r
+        if os.path.isfile(fpath) and os.access(fpath, os.X_OK):\r
+            status, output = run_command_status(fpath)\r
+            returns.append((status, output, fpath))\r
+\r
+    for (status, output, path) in returns:\r
+        if status is not None and status != 0:\r
+            raise CustomScriptException(status, output, [path], {})\r
+        elif output and VERBOSE:\r
+            print("script %s output is:" % (path))\r
+            print(output)\r
+\r
+\r
+def git_config_get_value(section, option, default=None):\r
+    try:\r
+        return run_command_exc(GitConfigException,\r
+                               "git", "config",\r
+                               "--get",\r
+                               "%s.%s" % (section, option)).strip()\r
+    except GitConfigException as exc:\r
+        if exc.rc == 1:\r
+            return default\r
+        raise\r
+\r
+\r
+class GitConfigException(CommandFailed):\r
+    """Git config value retrieval failed."""\r
+    EXIT_CODE = 128\r
+\r
+\r
+class CannotInstallHook(CommandFailed):\r
+    "Problems encountered installing commit-msg hook"\r
+    EXIT_CODE = 2\r
+\r
+\r
+def set_hooks_commit_msg(remote, target_file):\r
+    """Install the commit message hook if needed."""\r
+\r
+    # Create the hooks directory if it's not there already\r
+    hooks_dir = os.path.dirname(target_file)\r
+    if not os.path.isdir(hooks_dir):\r
+        os.mkdir(hooks_dir)\r
+\r
+    (hostname, username, port, project_name) = \\r
+        parse_git_show(remote, "Push")\r
+\r
+    if not os.path.exists(target_file) or UPDATE:\r
+        if VERBOSE:\r
+            print("Fetching commit hook from: scp://%s:%s" % (hostname, port))\r
+        if port is not None:\r
+            port = "-P %s" % port\r
+        else:\r
+            port = ""\r
+        if username is None:\r
+            userhost = hostname\r
+        else:\r
+            userhost = "%s@%s" % (username, hostname)\r
+        run_command_exc(\r
+            CannotInstallHook,\r
+            "scp", port,\r
+            userhost + ":hooks/commit-msg",\r
+            target_file)\r
+\r
+    if not os.access(target_file, os.X_OK):\r
+        os.chmod(target_file, os.path.stat.S_IREAD | os.path.stat.S_IEXEC)\r
+\r
+\r
+def test_remote(username, hostname, port, project):\r
+    """Tests that a possible gerrit remote works."""\r
+\r
+    if port is not None:\r
+        port = "-p %s" % port\r
+    else:\r
+        port = ""\r
+    if username is None:\r
+        userhost = hostname\r
+    else:\r
+        userhost = "%s@%s" % (username, hostname)\r
+\r
+    (status, ssh_output) = run_command_status(\r
+        "ssh", "-x", port, userhost,\r
+        "gerrit", "ls-projects")\r
+\r
+    if status == 0:\r
+        if VERBOSE:\r
+            print("%s@%s:%s worked." % (username, hostname, port))\r
+        return True\r
+    else:\r
+        if VERBOSE:\r
+            print("%s@%s:%s did not work." % (username, hostname, port))\r
+        return False\r
+\r
+\r
+def make_remote_url(username, hostname, port, project):\r
+    """Builds a gerrit remote URL."""\r
+    if username is None:\r
+        return "ssh://%s:%s/%s" % (hostname, port, project)\r
+    else:\r
+        return "ssh://%s@%s:%s/%s" % (username, hostname, port, project)\r
+\r
+\r
+def add_remote(hostname, port, project, remote):\r
+    """Adds a gerrit remote."""\r
+    asked_for_username = False\r
+\r
+    username = os.getenv("USERNAME")\r
+    if not username:\r
+        username = git_config_get_value("gitreview", "username")\r
+    if not username:\r
+        username = os.getenv("USER")\r
+    if port is None:\r
+        port = 29418\r
+\r
+    remote_url = make_remote_url(username, hostname, port, project)\r
+    if VERBOSE:\r
+        print("No remote set, testing %s" % remote_url)\r
+    if not test_remote(username, hostname, port, project):\r
+        print("Could not connect to gerrit.")\r
+        username = do_input("Enter your gerrit username: ")\r
+        remote_url = make_remote_url(username, hostname, port, project)\r
+        print("Trying again with %s" % remote_url)\r
+        if not test_remote(username, hostname, port, project):\r
+            raise Exception("Could not connect to gerrit at %s" % remote_url)\r
+        asked_for_username = True\r
+\r
+    print("Creating a git remote called \"%s\" that maps to:" % remote)\r
+    print("\t%s" % remote_url)\r
+    cmd = "git remote add -f %s %s" % (remote, remote_url)\r
+    (status, remote_output) = run_command_status(cmd)\r
+\r
+    if status != 0:\r
+        raise Exception("Error running %s" % cmd)\r
+\r
+    if asked_for_username:\r
+        print()\r
+        print("This repository is now set up for use with git-review.")\r
+        print("You can set the default username for future repositories with:")\r
+        print('  git config --global --add gitreview.username "%s"' % username)\r
+        print()\r
+\r
+\r
+def parse_git_show(remote, verb):\r
+    fetch_url = ""\r
+    for line in run_command("git remote show -n %s" % remote).split("\n"):\r
+        if line.strip().startswith("%s" % verb):\r
+            fetch_url = line.split()[2]\r
+\r
+    parsed_url = urlparse(fetch_url)\r
+    project_name = parsed_url.path.lstrip("/")\r
+    if project_name.endswith(".git"):\r
+        project_name = project_name[:-4]\r
+\r
+    hostname = parsed_url.netloc\r
+    username = None\r
+    port = parsed_url.port\r
+\r
+    if VERBOSE:\r
+        print("Found origin %s URL:" % verb, fetch_url)\r
+\r
+    # Workaround bug in urlparse on OSX\r
+    if parsed_url.scheme == "ssh" and parsed_url.path[:2] == "//":\r
+        hostname = parsed_url.path[2:].split("/")[0]\r
+\r
+    if "@" in hostname:\r
+        (username, hostname) = hostname.split("@")\r
+    if ":" in hostname:\r
+        (hostname, port) = hostname.split(":")\r
+\r
+    # Is origin an ssh location? Let's pull more info\r
+    if parsed_url.scheme == "ssh" and port is None:\r
+        port = 22\r
+\r
+    return (hostname, username, str(port), project_name)\r
+\r
+\r
+def check_color_support():\r
+    global _has_color\r
+    global _no_color_support\r
+    if _has_color is None:\r
+        test_command = "git log --color=never --oneline HEAD^1..HEAD"\r
+        (status, output) = run_command_status(test_command)\r
+        if status == 0:\r
+            _has_color = True\r
+        else:\r
+            _has_color = False\r
+            \r
+    if _no_color_support:\r
+      _has_color = False\r
+\r
+    return _has_color\r
+\r
+\r
+def get_config(config_file=None):\r
+    """Generate the configuration map by starting with some built-in defaults\r
+    and then loading GLOBAL_CONFIG, USER_CONFIG, and a repository-specific\r
+    .gitreview file, if they exist. In case of conflict, the configuration file\r
+    with the narrowest scope wins.\r
+    """\r
+    config = DEFAULTS.copy()\r
+    for filename in (GLOBAL_CONFIG, USER_CONFIG, config_file):\r
+        if filename is not None and os.path.exists(filename):\r
+            config.update(load_config_file(filename))\r
+    return config\r
+\r
+\r
+def load_config_file(config_file):\r
+    """Load configuration options from a file."""\r
+    configParser = ConfigParser.ConfigParser()\r
+    configParser.read(config_file)\r
+    options = {\r
+        'hostname': 'host',\r
+        'port': 'port',\r
+        'project': 'project',\r
+        'defaultbranch': 'defaultbranch',\r
+        'defaultremote': 'defaultremote',\r
+        'defaultrebase': 'defaultrebase',\r
+    }\r
+    config = {}\r
+    for config_key, option_name in options.items():\r
+        if configParser.has_option('gerrit', option_name):\r
+            config[config_key] = configParser.get('gerrit', option_name)\r
+    return config\r
+\r
+\r
+def update_remote(remote):\r
+    cmd = "git remote update %s" % remote\r
+    (status, output) = run_command_status(cmd)\r
+    if VERBOSE:\r
+        print(output)\r
+    if status != 0:\r
+        print("Problem running '%s'" % cmd)\r
+        if not VERBOSE:\r
+            print(output)\r
+        return False\r
+    return True\r
+\r
+\r
+def check_remote(branch, remote, hostname, port, project):\r
+    """Check that a Gerrit Git remote repo exists, if not, set one."""\r
+\r
+    has_color = check_color_support()\r
+    if has_color:\r
+        color_never = "--color=never"\r
+    else:\r
+        color_never = ""\r
+\r
+    if remote in run_command("git remote").split("\n"):\r
+\r
+        remotes = run_command("git branch -a %s" % color_never).split("\n")\r
+        for current_remote in remotes:\r
+            if (current_remote.strip() == "remotes/%s/%s" % (remote, branch)\r
+                    and not UPDATE):\r
+                return\r
+        # We have the remote, but aren't set up to fetch. Fix it\r
+        if VERBOSE:\r
+            print("Setting up gerrit branch tracking for better rebasing")\r
+        update_remote(remote)\r
+        return\r
+\r
+    if hostname is False or port is False or project is False:\r
+        # This means there was no .gitreview file\r
+        print("No '.gitreview' file found in this repository.")\r
+        print("We don't know where your gerrit is. Please manually create ")\r
+        print("a remote named \"%s\" and try again." % remote)\r
+        sys.exit(1)\r
+\r
+    # Gerrit remote not present, try to add it\r
+    try:\r
+        add_remote(hostname, port, project, remote)\r
+    except Exception:\r
+        print(sys.exc_info()[2])\r
+        print("We don't know where your gerrit is. Please manually create ")\r
+        print("a remote named \"%s\" and try again." % remote)\r
+        raise\r
+\r
+\r
+def rebase_changes(branch, remote, interactive=True):\r
+\r
+    remote_branch = "remotes/%s/%s" % (remote, branch)\r
+\r
+    if not update_remote(remote):\r
+        return False\r
+\r
+    if interactive:\r
+        cmd = "git rebase -i %s" % remote_branch\r
+    else:\r
+        cmd = "git rebase %s" % remote_branch\r
+\r
+    (status, output) = run_command_status(cmd, GIT_EDITOR='true')\r
+    if status != 0:\r
+        print("Errors running %s" % cmd)\r
+        if interactive:\r
+            print(output)\r
+        return False\r
+    return True\r
+\r
+\r
+def undo_rebase():\r
+    cmd = "git reset --hard ORIG_HEAD"\r
+    (status, output) = run_command_status(cmd)\r
+    if status != 0:\r
+        print("Errors running %s" % cmd)\r
+        print(output)\r
+        return False\r
+    return True\r
+\r
+\r
+def get_branch_name(target_branch):\r
+    global _branch_name\r
+    if _branch_name is not None:\r
+        return _branch_name\r
+    _branch_name = None\r
+    has_color = check_color_support()\r
+    if has_color:\r
+        color_never = "--color=never"\r
+    else:\r
+        color_never = ""\r
+    for branch in run_command("git branch %s" % color_never).split("\n"):\r
+        if branch.startswith('*'):\r
+            _branch_name = branch.split()[1].strip()\r
+    if _branch_name == "(no":\r
+        _branch_name = target_branch\r
+    return _branch_name\r
+\r
+\r
+def assert_one_change(remote, branch, yes, have_hook):\r
+    has_color = check_color_support()\r
+    if has_color:\r
+        color = git_config_get_value("color", "ui")\r
+        if color is None:\r
+            color = "auto"\r
+        else:\r
+            color = color.lower()\r
+        if (color == "" or color == "true"):\r
+            color = "auto"\r
+        elif color == "false":\r
+            color = "never"\r
+        elif color == "auto":\r
+            # Python is not a tty, we have to force colors\r
+            color = "always"\r
+        use_color = "--color=%s" % color\r
+    else:\r
+        use_color = ""\r
+    cmd = "git log %s --decorate --oneline HEAD --not remotes/%s/%s --" % (\r
+        use_color, remote, branch)\r
+    (status, output) = run_command_status(cmd)\r
+    if status != 0:\r
+        print("Had trouble running %s" % cmd)\r
+        print(output)\r
+        sys.exit(1)\r
+    output_lines = len(output.split("\n"))\r
+    if output_lines == 1 and not have_hook:\r
+        print("Your change was committed before the commit hook was installed")\r
+        print("Amending the commit to add a gerrit change id")\r
+        run_command("git commit --amend", GIT_EDITOR='true')\r
+    elif output_lines == 0:\r
+        print("No changes between HEAD and %s/%s." % (remote, branch))\r
+        print("Submitting for review would be pointless.")\r
+        sys.exit(1)\r
+    elif output_lines > 1:\r
+        if not yes:\r
+            print("You have more than one commit"\r
+                  " that you are about to submit.")\r
+            print("The outstanding commits are:\n\n%s\n" % output)\r
+            print("Is this really what you meant to do?")\r
+            yes_no = do_input("Type 'yes' to confirm: ")\r
+            if yes_no.lower().strip() != "yes":\r
+                print("Aborting.")\r
+                print("Please rebase/squash your changes and try again")\r
+                sys.exit(1)\r
+\r
+\r
+def use_topic(why, topic):\r
+    """Inform the user about why a particular topic has been selected."""\r
+    if VERBOSE:\r
+        print(why % ('"%s"' % topic,))\r
+    return topic\r
+\r
+\r
+def get_topic(target_branch):\r
+\r
+    branch_name = get_branch_name(target_branch)\r
+\r
+    branch_parts = branch_name.split("/")\r
+    if len(branch_parts) >= 3 and branch_parts[0] == "review":\r
+        return use_topic("Using change number %s "\r
+                         "for the topic of the change submitted",\r
+                         "/".join(branch_parts[2:]))\r
+\r
+    log_output = run_command("git log HEAD^1..HEAD")\r
+    bug_re = r'\b([Bb]ug|[Ll][Pp])\s*[#:]?\s*(\d+)'\r
+\r
+    match = re.search(bug_re, log_output)\r
+    if match is not None:\r
+        return use_topic("Using bug number %s "\r
+                         "for the topic of the change submitted",\r
+                         "bug/%s" % match.group(2))\r
+\r
+    bp_re = r'\b([Bb]lue[Pp]rint|[Bb][Pp])\s*[#:]?\s*([0-9a-zA-Z-_]+)'\r
+    match = re.search(bp_re, log_output)\r
+    if match is not None:\r
+        return use_topic("Using blueprint number %s "\r
+                         "for the topic of the change submitted",\r
+                         "bp/%s" % match.group(2))\r
+\r
+    return use_topic("Using local branch name %s "\r
+                     "for the topic of the change submitted",\r
+                     branch_name)\r
+\r
+\r
+class CannotQueryOpenChangesets(CommandFailed):\r
+    "Cannot fetch review information from gerrit"\r
+    EXIT_CODE = 32\r
+\r
+\r
+class CannotParseOpenChangesets(ChangeSetException):\r
+    "Cannot parse JSON review information from gerrit"\r
+    EXIT_CODE = 33\r
+\r
+\r
+def list_reviews(remote):\r
+\r
+    (hostname, username, port, project_name) = \\r
+        parse_git_show(remote, "Push")\r
+\r
+    if port is not None:\r
+        port = "-p %s" % port\r
+    else:\r
+        port = ""\r
+    if username is None:\r
+        userhost = hostname\r
+    else:\r
+        userhost = "%s@%s" % (username, hostname)\r
+\r
+    review_info = None\r
+    output = run_command_exc(\r
+        CannotQueryOpenChangesets,\r
+        "ssh", "-x", port, userhost,\r
+        "gerrit", "query",\r
+        "--current-patch-set --format=JSON project:%s status:open reviewer:self" % project_name)\r
+\r
+    review_list = []\r
+    review_field_width = {}\r
+    REVIEW_FIELDS = ('number', 'currentPatchSet', 'branch', 'subject')\r
+    FIELDS = range(0, len(REVIEW_FIELDS))\r
+    if check_color_support():\r
+        review_field_color = (colors.yellow, colors.yellow, colors.green, "")\r
+        color_reset = colors.reset\r
+    else:\r
+        review_field_color = ("", "", "", "")\r
+        color_reset = ""\r
+    review_field_width = [0, 0, 0, 0]\r
+    review_field_format = ["%*s", "%*s", "%*s", "%*s"]\r
+    review_field_justify = [+1, +1, +1, -1]  # -1 is justify to right\r
+\r
+    for line in output.split("\n"):\r
+        # Warnings from ssh wind up in this output\r
+        if line[0] != "{":\r
+            print(line)\r
+            continue\r
+        try:\r
+            review_info = json.loads(line)\r
+        except Exception:\r
+            if VERBOSE:\r
+                print(output)\r
+            raise(CannotParseOpenChangesets, sys.exc_info()[1])\r
+\r
+        if 'type' in review_info:\r
+            break\r
+\r
+        tempPS = review_info['currentPatchSet']\r
+        appPS = tempPS['approvals']\r
+        appValue = '-';\r
+        for appLine in appPS:\r
+          appBy = appLine['by']\r
+          appUser = appBy['username']\r
+          if appUser == username:\r
+            appValue = appLine['value']\r
+        review_info['currentPatchSet'] = tempPS['number'] + ' ' + appValue\r
+        \r
+        review_list.append([review_info[f] for f in REVIEW_FIELDS])\r
+        for i in FIELDS:\r
+            review_field_width[i] = max(\r
+                review_field_width[i],\r
+                len(review_info[REVIEW_FIELDS[i]])\r
+            )\r
+\r
+    review_field_format = "  ".join([\r
+        review_field_color[i] +\r
+        review_field_format[i] +\r
+        color_reset\r
+        for i in FIELDS])\r
+\r
+    review_field_width = [\r
+        review_field_width[i] * review_field_justify[i]\r
+        for i in FIELDS]\r
+    for review_value in review_list:\r
+        # At this point we have review_field_format\r
+        # like "%*s %*s %*s" and we need to supply\r
+        # (width1, value1, width2, value2, ...) tuple to print\r
+        # It's easy to zip() widths with actual values,\r
+        # but we need to flatten the resulting\r
+        #  ((width1, value1), (width2, value2), ...) map.\r
+        formatted_fields = []\r
+        for (width, value) in zip(review_field_width, review_value):\r
+            formatted_fields.extend([width, value])\r
+        print(review_field_format % tuple(formatted_fields))\r
+    print("Found %d items for review" % review_info['rowCount'])\r
+\r
+    return 0\r
+\r
+\r
+class CannotQueryPatchSet(CommandFailed):\r
+    "Cannot query patchset information"\r
+    EXIT_CODE = 34\r
+\r
+\r
+class ReviewInformationNotFound(ChangeSetException):\r
+    "Could not fetch review information for change %s"\r
+    EXIT_CODE = 35\r
+\r
+\r
+class ReviewNotFound(ChangeSetException):\r
+    "Gerrit review %s not found"\r
+    EXIT_CODE = 36\r
+\r
+\r
+class PatchSetGitFetchFailed(CommandFailed):\r
+    """Cannot fetch patchset contents\r
+\r
+Does specified change number belong to this project?\r
+"""\r
+    EXIT_CODE = 37\r
+\r
+\r
+class PatchSetNotFound(ChangeSetException):\r
+    "Review patchset %s not found"\r
+    EXIT_CODE = 38\r
+\r
+\r
+class CheckoutNewBranchFailed(CommandFailed):\r
+    "Cannot checkout to new branch"\r
+    EXIT_CODE = 64\r
+\r
+\r
+class CheckoutExistingBranchFailed(CommandFailed):\r
+    "Cannot checkout existing branch"\r
+    EXIT_CODE = 65\r
+\r
+\r
+class ResetHardFailed(CommandFailed):\r
+    "Failed to hard reset downloaded branch"\r
+    EXIT_CODE = 66\r
+\r
+\r
+def fetch_review(review, masterbranch, remote):\r
+\r
+    (hostname, username, port, project_name) = \\r
+        parse_git_show(remote, "Push")\r
+\r
+    if port is not None:\r
+        port = "-p %s" % port\r
+    else:\r
+        port = ""\r
+    if username is None:\r
+        userhost = hostname\r
+    else:\r
+        userhost = "%s@%s" % (username, hostname)\r
+\r
+    review_arg = review\r
+    patchset_opt = '--current-patch-set'\r
+\r
+    review, patchset_number = parse_review_number(review)\r
+    if patchset_number is not None:\r
+        patchset_opt = '--patch-sets'\r
+\r
+    review_info = None\r
+    output = run_command_exc(\r
+        CannotQueryPatchSet,\r
+        "ssh", "-x", port, userhost,\r
+        "gerrit", "query",\r
+        "--format=JSON %s change:%s" % (patchset_opt, review))\r
+\r
+    review_jsons = output.split("\n")\r
+    found_review = False\r
+    for review_json in review_jsons:\r
+        try:\r
+            review_info = json.loads(review_json)\r
+            found_review = True\r
+        except Exception:\r
+            pass\r
+        if found_review:\r
+            break\r
+    if not found_review:\r
+        if VERBOSE:\r
+            print(output)\r
+        raise ReviewInformationNotFound(review)\r
+\r
+    try:\r
+        if patchset_number is None:\r
+            refspec = review_info['currentPatchSet']['ref']\r
+        else:\r
+            refspec = [ps for ps\r
+                       in review_info['patchSets']\r
+                       if ps['number'] == patchset_number][0]['ref']\r
+    except IndexError:\r
+        raise PatchSetNotFound(review_arg)\r
+    except KeyError:\r
+        raise ReviewNotFound(review)\r
+\r
+    try:\r
+        topic = review_info['topic']\r
+        if topic == masterbranch:\r
+            topic = review\r
+    except KeyError:\r
+        topic = review\r
+    try:\r
+        author = re.sub('\W+', '_', review_info['owner']['name']).lower()\r
+    except KeyError:\r
+        author = 'unknown'\r
+\r
+    if patchset_number is None:\r
+        branch_name = "review/%s/%s" % (author, topic)\r
+    else:\r
+        branch_name = "review/%s/%s-patch%s" % (author, topic, patchset_number)\r
+\r
+    print("Downloading %s from gerrit" % refspec)\r
+    run_command_exc(PatchSetGitFetchFailed,\r
+                    "git", "fetch", remote, refspec)\r
+    return branch_name\r
+\r
+\r
+def checkout_review(branch_name):\r
+    """Checkout a newly fetched (FETCH_HEAD) change\r
+       into a branch\r
+    """\r
+\r
+    try:\r
+        run_command_exc(CheckoutNewBranchFailed,\r
+                        "git", "checkout", "-b",\r
+                        branch_name, "FETCH_HEAD")\r
+\r
+    except CheckoutNewBranchFailed as e:\r
+        if re.search("already exists\.?", e.output):\r
+            print("Branch already exists - reusing")\r
+            run_command_exc(CheckoutExistingBranchFailed,\r
+                            "git", "checkout", branch_name)\r
+            run_command_exc(ResetHardFailed,\r
+                            "git", "reset", "--hard", "FETCH_HEAD")\r
+        else:\r
+            raise\r
+\r
+    print("Switched to branch \"%s\"" % branch_name)\r
+\r
+\r
+class PatchSetGitCherrypickFailed(CommandFailed):\r
+    "There was a problem applying changeset contents to the current branch."\r
+    EXIT_CODE = 69\r
+\r
+\r
+def cherrypick_review(option=None):\r
+    cmd = ["git", "cherry-pick"]\r
+    if option:\r
+        cmd.append(option)\r
+    cmd.append("FETCH_HEAD")\r
+    print(run_command_exc(PatchSetGitCherrypickFailed, *cmd))\r
+\r
+\r
+class CheckoutBackExistingBranchFailed(CommandFailed):\r
+    "Cannot switch back to existing branch"\r
+    EXIT_CODE = 67\r
+\r
+\r
+class DeleteBranchFailed(CommandFailed):\r
+    "Failed to delete branch"\r
+    EXIT_CODE = 68\r
+\r
+\r
+class InvalidPatchsetsToCompare(GitReviewException):\r
+    def __init__(self, patchsetA, patchsetB):\r
+        Exception.__init__(\r
+            self,\r
+            "Invalid patchsets for comparison specified (old=%s,new=%s)" % (\r
+                patchsetA,\r
+                patchsetB))\r
+    EXIT_CODE = 39\r
+\r
+\r
+def compare_review(review_spec, branch, remote, rebase=False):\r
+    new_ps = None    # none means latest\r
+\r
+    if '-' in review_spec:\r
+        review_spec, new_ps = review_spec.split('-')\r
+    review, old_ps = parse_review_number(review_spec)\r
+\r
+    if old_ps is None or old_ps == new_ps:\r
+        raise InvalidPatchsetsToCompare(old_ps, new_ps)\r
+\r
+    old_review = build_review_number(review, old_ps)\r
+    new_review = build_review_number(review, new_ps)\r
+\r
+    old_branch = fetch_review(old_review, branch, remote)\r
+    checkout_review(old_branch)\r
+\r
+    if rebase:\r
+        print('Rebasing %s' % old_branch)\r
+        rebase = rebase_changes(branch, remote, False)\r
+        if not rebase:\r
+            print('Skipping rebase because of conflicts')\r
+            run_command_exc(CommandFailed, 'git', 'rebase', '--abort')\r
+\r
+    new_branch = fetch_review(new_review, branch, remote)\r
+    checkout_review(new_branch)\r
+\r
+    if rebase:\r
+        print('Rebasing also %s' % new_branch)\r
+        if not rebase_changes(branch, remote, False):\r
+            print("Rebasing of the new branch failed, "\r
+                  "diff can be messed up (use -R to not rebase at all)!")\r
+            run_command_exc(CommandFailed, 'git', 'rebase', '--abort')\r
+\r
+    subprocess.check_call(['git', 'difftool', old_branch])\r
+\r
+\r
+def finish_branch(target_branch):\r
+    local_branch = get_branch_name(target_branch)\r
+    if VERBOSE:\r
+        print("Switching back to '%s' and deleting '%s'" % (target_branch,\r
+                                                            local_branch))\r
+    run_command_exc(CheckoutBackExistingBranchFailed,\r
+                    "git", "checkout", target_branch)\r
+    print("Switched to branch '%s'" % target_branch)\r
+\r
+    run_command_exc(DeleteBranchFailed,\r
+                    "git", "branch", "-D", local_branch)\r
+    print("Deleted branch '%s'" % local_branch)\r
+\r
+\r
+def convert_bool(one_or_zero):\r
+    "Return a bool on a one or zero string."\r
+    return one_or_zero in ["1", "true", "True"]\r
+\r
+\r
+def print_exit_message(status, needs_update):\r
+\r
+    if needs_update:\r
+        print("""\r
+***********************************************************\r
+A new version of git-review is available on PyPI. Please\r
+update your copy with:\r
+\r
+  pip install -U git-review\r
+\r
+to ensure proper behavior with gerrit. Thanks!\r
+***********************************************************\r
+""")\r
+    sys.exit(status)\r
+\r
+\r
+def main():\r
+    global _no_color_support\r
+    usage = "git review [OPTIONS] ... [BRANCH]"\r
+\r
+    import argparse\r
+\r
+    class DownloadFlag(argparse.Action):\r
+        """Additional option parsing: store value in 'dest', but\r
+           at the same time set one of the flag options to True\r
+        """\r
+        def __call__(self, parser, namespace, values, option_string=None):\r
+            setattr(namespace, self.dest, values)\r
+            setattr(namespace, self.const, True)\r
+\r
+    parser = argparse.ArgumentParser(usage=usage, description=COPYRIGHT)\r
+\r
+    parser.add_argument("-t", "--topic", dest="topic",\r
+                        help="Topic to submit branch to")\r
+    parser.add_argument("-D", "--draft", dest="draft", action="store_true",\r
+                        help="Submit review as a draft")\r
+    parser.add_argument("-c", "--compatible", dest="compatible",\r
+                        action="store_true",\r
+                        help="Push change to refs/for/* for compatibility "\r
+                             "with Gerrit versions < 2.3. Ignored if "\r
+                             "-D/--draft is used.")\r
+    parser.add_argument("-n", "--dry-run", dest="dry", action="store_true",\r
+                        help="Don't actually submit the branch for review")\r
+    parser.add_argument("-i", "--new-changeid", dest="regenerate",\r
+                        action="store_true",\r
+                        help="Regenerate Change-id before submitting")\r
+    parser.add_argument("-r", "--remote", dest="remote",\r
+                        help="git remote to use for gerrit")\r
+    parser.add_argument("-R", "--no-rebase", dest="rebase",\r
+                        action="store_false",\r
+                        help="Don't rebase changes before submitting.")\r
+    parser.add_argument("-F", "--force-rebase", dest="force_rebase",\r
+                        action="store_true",\r
+                        help="Force rebase even when not needed.")\r
+    parser.add_argument("-B", "--no-color", dest="no_color_support",\r
+                        action="store_true",\r
+                        help="No color support.")\r
+                        \r
+\r
+    fetch = parser.add_mutually_exclusive_group()\r
+    fetch.set_defaults(download=False, compare=False, cherrypickcommit=False,\r
+                       cherrypickindicate=False, cherrypickonly=False)\r
+    fetch.add_argument("-d", "--download", dest="changeidentifier",\r
+                       action=DownloadFlag, metavar="CHANGE",\r
+                       const="download",\r
+                       help="Download the contents of an existing gerrit "\r
+                            "review into a branch")\r
+    fetch.add_argument("-x", "--cherrypick", dest="changeidentifier",\r
+                       action=DownloadFlag, metavar="CHANGE",\r
+                       const="cherrypickcommit",\r
+                       help="Apply the contents of an existing gerrit "\r
+                             "review onto the current branch and commit "\r
+                             "(cherry pick; not recommended in most "\r
+                             "situations)")\r
+    fetch.add_argument("-X", "--cherrypickindicate", dest="changeidentifier",\r
+                       action=DownloadFlag, metavar="CHANGE",\r
+                       const="cherrypickindicate",\r
+                       help="Apply the contents of an existing gerrit "\r
+                       "review onto the current branch and commit, "\r
+                       "indicating its origin")\r
+    fetch.add_argument("-N", "--cherrypickonly", dest="changeidentifier",\r
+                       action=DownloadFlag, metavar="CHANGE",\r
+                       const="cherrypickonly",\r
+                       help="Apply the contents of an existing gerrit "\r
+                       "review to the working directory and prepare "\r
+                       "for commit")\r
+    fetch.add_argument("-m", "--compare", dest="changeidentifier",\r
+                       action=DownloadFlag, metavar="CHANGE,PS[-NEW_PS]",\r
+                       const="compare",\r
+                       help="Download specified and latest (or NEW_PS) "\r
+                       "patchsets of an existing gerrit review into "\r
+                       "a branches, rebase on master "\r
+                       "(skipped on conflicts or when -R is specified) "\r
+                       "and show their differences")\r
+\r
+    parser.add_argument("-u", "--update", dest="update", action="store_true",\r
+                        help="Force updates from remote locations")\r
+    parser.add_argument("-s", "--setup", dest="setup", action="store_true",\r
+                        help="Just run the repo setup commands but don't "\r
+                             "submit anything")\r
+    parser.add_argument("-f", "--finish", dest="finish", action="store_true",\r
+                        help="Close down this branch and switch back to "\r
+                             "master on successful submission")\r
+    parser.add_argument("-l", "--list", dest="list", action="store_true",\r
+                        help="List available reviews for the current project")\r
+    parser.add_argument("-y", "--yes", dest="yes", action="store_true",\r
+                        help="Indicate that you do, in fact, understand if "\r
+                             "you are submitting more than one patch")\r
+    parser.add_argument("-v", "--verbose", dest="verbose", action="store_true",\r
+                        help="Output more information about what's going on")\r
+    parser.add_argument("--no-custom-script", dest="custom_script",\r
+                        action="store_false", default=True,\r
+                        help="Do not run custom scripts.")\r
+    parser.add_argument("--license", dest="license", action="store_true",\r
+                        help="Print the license and exit")\r
+    parser.add_argument("--version", action="version",\r
+                        version='%s version %s' %\r
+                        (os.path.split(sys.argv[0])[-1], version))\r
+    parser.add_argument("branch", nargs="?")\r
+\r
+    try:\r
+        (top_dir, git_dir) = git_directories()\r
+    except GitDirectoriesException:\r
+        if sys.argv[1:] in ([], ['-h'], ['--help']):\r
+            parser.print_help()\r
+            sys.exit(1)\r
+        raise\r
+\r
+#    config = get_config(os.path.join(top_dir, ".gitreview"))\r
+    config = DEFAULTS.copy()       \r
+    cur_proj = run_command("git remote -v")\r
+    import re\r
+    m = re.search('(?<=29418\/)(\S+)', cur_proj)\r
+    config['project'] = m.group(0) \r
+\r
+    \r
+    defaultrebase = convert_bool(\r
+        git_config_get_value("gitreview", "rebase",\r
+                             default=str(config['defaultrebase'])))\r
+    parser.set_defaults(dry=False,\r
+                        draft=False,\r
+                        rebase=defaultrebase,\r
+                        verbose=False,\r
+                        update=False,\r
+                        setup=False,\r
+                        list=False,\r
+                        yes=False,\r
+                        branch=config['defaultbranch'],\r
+                        remote=config['defaultremote'])\r
+    options = parser.parse_args()\r
+\r
+    if options.license:\r
+        print(COPYRIGHT)\r
+        sys.exit(0)\r
+\r
+    branch = options.branch\r
+    global VERBOSE\r
+    global UPDATE\r
+    VERBOSE = options.verbose\r
+    UPDATE = options.update\r
+    remote = options.remote\r
+    yes = options.yes\r
+    status = 0\r
+\r
+    needs_update = latest_is_newer()\r
+    check_remote(branch, remote,\r
+                 config['hostname'], config['port'], config['project'])\r
+\r
+    if options.no_color_support:\r
+      _no_color_support = True\r
+\r
+    if options.changeidentifier:\r
+        if options.compare:\r
+            compare_review(options.changeidentifier,\r
+                           branch, remote, options.rebase)\r
+            return\r
+        local_branch = fetch_review(options.changeidentifier, branch, remote)\r
+        if options.download:\r
+            checkout_review(local_branch)\r
+        else:\r
+            if options.cherrypickcommit:\r
+                cherrypick_review()\r
+            elif options.cherrypickonly:\r
+                cherrypick_review("-n")\r
+            if options.cherrypickindicate:\r
+                cherrypick_review("-x")\r
+        return\r
+    elif options.list:\r
+        list_reviews(remote)\r
+        return\r
+\r
+    if options.custom_script:\r
+        run_custom_script("pre")\r
+\r
+    hook_file = os.path.join(git_dir, "hooks", "commit-msg")\r
+    have_hook = os.path.exists(hook_file) and os.access(hook_file, os.X_OK)\r
+\r
+    if not have_hook:\r
+        set_hooks_commit_msg(remote, hook_file)\r
+\r
+    if options.setup:\r
+        if options.finish and not options.dry:\r
+            finish_branch(branch)\r
+        return\r
+\r
+    if options.rebase:\r
+        if not rebase_changes(branch, remote):\r
+            print_exit_message(1, needs_update)\r
+        if not options.force_rebase and not undo_rebase():\r
+            print_exit_message(1, needs_update)\r
+    assert_one_change(remote, branch, yes, have_hook)\r
+\r
+    ref = "publish"\r
+\r
+    if options.draft:\r
+        ref = "drafts"\r
+        if options.custom_script:\r
+            run_custom_script("draft")\r
+    elif options.compatible:\r
+        ref = "for"\r
+\r
+    cmd = "git push %s HEAD:refs/%s/%s" % (remote, ref, branch)\r
+    topic = options.topic or get_topic(branch)\r
+    if topic != branch:\r
+        cmd += "/%s" % topic\r
+    if options.regenerate:\r
+        print("Amending the commit to regenerate the change id\n")\r
+        regenerate_cmd = "git commit --amend"\r
+        if options.dry:\r
+            print("\tGIT_EDITOR=\"sed -i -e '/^Change-Id:/d'\" %s\n" %\r
+                  regenerate_cmd)\r
+        else:\r
+            run_command(regenerate_cmd,\r
+                        GIT_EDITOR="sed -i -e "\r
+                        "'/^Change-Id:/d'")\r
+\r
+    if options.dry:\r
+        print("Please use the following command "\r
+              "to send your commits to review:\n")\r
+        print("\t%s\n" % cmd)\r
+    else:\r
+        (status, output) = run_command_status(cmd)\r
+        print(output)\r
+\r
+    if options.finish and not options.dry and status == 0:\r
+        finish_branch(branch)\r
+        return\r
+\r
+    if options.custom_script:\r
+        run_custom_script("post")\r
+    print_exit_message(status, needs_update)\r
+\r
+\r
+if __name__ == "__main__":\r
+    try:\r
+        main()\r
+    except GitReviewException as e:\r
+        print(e)\r
+        sys.exit(e.EXIT_CODE)\r