#! /usr/bin/gawk -f
# Last edited on 1999-07-13 22:56:02 by stolfi

# Usage: rotate-labels [-v width=N ] [-v shift=M] < LABIN > LABOUT
# Reads a list of labels, one per line.
# Prints them vertically, one per column.
# Optionally spreads the labels so that each takes "width" columns,
# with "shift" blank columns at its left.

BEGIN {
  m = 0;
  split("", w); 
  n = 0;
}

// {
  len = length($0);
  if (len > m) m = len;
  w[n] = $0;
  n++;
}

END {
  for (i=1; i<=m; i++)
    { for (j=0; j<n; j++)
        { for (k=1; k<shift; k++) printf " "; 
          len = length(w[j]);
          printf "%s", (i > len ? " " : substr(w[j],i,1));
          for (k=shift+1; k<width; k++) printf " "; 
        }
      printf "\n";
    }
}