% $Id: debug.bbx,v 0.9e 2010/10/09 16:39:36 lehman beta $

\ProvidesFile{debug.bbx}
[\abx@bbxid $Id: debug.bbx,v 0.9e 2010/10/09 16:39:36 lehman beta $]

\ExecuteBibliographyOptions{sorting=debug}
\DeclareFieldFormat{entrykey}{\ttfamily[#1]}
\DeclareFieldFormat{shorthandwidth}{#1}

\defbibenvironment{bibliography}
  {\list
     {}
     {\setlength{\leftmargin}{8em}%
      \setlength{\itemindent}{-\leftmargin}%
      \setlength{\itemsep}{0pt}%
      \setlength{\parsep}{0pt}%
      \interlinepenalty\@M
      \raggedbottom\raggedright
      \frenchspacing
      \normalfont\footnotesize}}
  {\endlist}
  {\item}

\defbibenvironment{shorthands}
  {\list
     {\printfield[shorthandwidth]{shorthand}}
     {\setlength{\labelwidth}{8em}%
      \setlength{\leftmargin}{\labelwidth}%
      \addtolength{\labelwidth}{-\labelsep}%
      \setlength{\itemsep}{0pt}%
      \setlength{\parsep}{0pt}%
      \renewcommand*{\makelabel}[1]{##1\hss}%
      \interlinepenalty\@M
      \raggedbottom\raggedright
      \frenchspacing
      \normalfont\footnotesize}}
  {\endlist}
  {\item}

\DeclareNameFormat{debug}{%
  \bbx@mklabel{\currentname}%
  \ifblank{#3}{}{\detokenize{#3}\space}%
  \ifblank{#5}{}{\detokenize{#5}\ifpunctmark{'}{}{\space}}%
  \detokenize{#1}%
  \ifblank{#7}{}{\space\detokenize{#7}}%
  \ifblank{#3}{}{\bbx@mksublabel{first}\detokenize{#3}}%
  \ifblank{#1}{}{\bbx@mksublabel{last}\detokenize{#1}}%
  \ifblank{#5}{}{\bbx@mksublabel{prefix}\detokenize{#5}}%
  \ifblank{#7}{}{\bbx@mksublabel{affix}\detokenize{#7}}%
  \bbx@mksublabel{inits}%
  \ifblank{#4}{}{\detokenize{#4}\space}%
  \ifblank{#6}{}{\detokenize{#6}\ifpunctmark{'}{}{\space}}%
  \detokenize{#2}%
  \ifblank{#8}{}{\space\detokenize{#8}}%
}

\DeclareListFormat{debug}{%
  \bbx@mklabel{\currentlist}%
  \detokenize{#1}}

\DeclareFieldFormat{debug}{%
  \bbx@mklabel{\currentfield}%
  \detokenize{#1}}

\newcommand*{\bbx@mklabel}[1]{%
  \item
  \makebox[\leftmargin][l]{\ttfamily [#1]}}

\newcommand*{\bbx@mksublabel}[1]{%
  \par\nobreak
  \makebox[6em][l]{\ttfamily [#1]}}

\DeclareBibliographyDriver{*}{%
  \item\begingroup\ttfamily\leavevmode
  \xleaders\hbox to 0.75em{\hss-\hss}\hfill\kern\z@
  \space\printfield{entrykey}\space
  \xleaders\hbox to 0.75em{\hss-\hss}\hfill\kern\z@
  \endgroup
  \def\do{\printnames[debug][-\thelisttotal]}%
  \abx@donames
  \def\do{\printlist[debug][-\thelisttotal]}%
  \abx@dolists
  \def\do{\printfield[debug]}%
  \abx@dofields\do{options}\do{execute}%
  \item\begingroup\ttfamily\leavevmode
  \xleaders\hbox to 0.75em{\hss-\hss}\hfill\kern\z@
  \endgroup
  \clearpage}

\DeclareBibliographyDriver{shorthands}{%
  \texttt{\printfield{entrykey}}}

\endinput
