diff options
39 files changed, 6855 insertions, 0 deletions
diff --git a/test-plans/ChangeLog b/test-plans/ChangeLog new file mode 100644 index 0000000..682d673 --- /dev/null +++ b/test-plans/ChangeLog @@ -0,0 +1,18 @@ +Sun Jan 19 11:29:00 1992 (Eric Youngdale at youngdale@v6550c.nrl.navy.mil) + + * etags-vmslib.c (fn_exp): Add type cast. + +Tue Nov 29 09:59:54 1988 Richard Mlynarik (mly at pickled-brain.ai.mit.edu) + + * movemail.c: Better error message when can't create tempname. + This file needs a great deal of extra error-checking and lucid reporting... + +Fri Apr 29 00:22:26 1988 Richard Stallman (rms at frosted-flakes.ai.mit.edu) + + * loadst.c: Add BSD4_3 conditional for file dk.h instead of dkstat.h. + +Thu Apr 28 08:55:46 1988 Richard Stallman (rms at frosted-flakes.ai.mit.edu) + + * movemail.c: #undef close, since config can #define it on V.3. + * emacsclient.c, fakemail.c, loadst.c, server.c: likewise. + diff --git a/test-plans/Emacs.ad b/test-plans/Emacs.ad new file mode 100644 index 0000000..d40be72 --- /dev/null +++ b/test-plans/Emacs.ad @@ -0,0 +1,21 @@ +Emacs.default.attributeForeground: WINDOW_FOREGROUND +Emacs.default.attributeBackground: WINDOW_BACKGROUND + +Emacs*Foreground: WINDOW_FOREGROUND +Emacs*Background: WINDOW_BACKGROUND +Emacs*menubar*foreground: FOREGROUND +Emacs*menubar*background: BACKGROUND +Emacs*popup*Foreground: FOREGROUND +Emacs*popup*Background: BACKGROUND +Emacs*Dialog*foreground: FOREGROUND +Emacs*Dialog*background: BACKGROUND +Emacs*XlwScrollBar.Foreground: FOREGROUND +Emacs*XlwScrollBar.Background: BACKGROUND +Emacs*topToolBarShadowColor: BACKGROUND +Emacs*bottomToolBarShadowColor: BACKGROUND +Emacs*backgroundToolBarColor: BACKGROUND +Emacs.scroll-bar.attributeBackground: BACKGROUND +Emacs.scroll-bar.attributeForeground: FOREGROUND +Emacs.mode-line.attributeForeground: FOREGROUND +Emacs.tool-bar.attributeBackground: BACKGROUND +Emacs.tool-bar.attributeForeground: FOREGROUND diff --git a/test-plans/Hello.vb b/test-plans/Hello.vb new file mode 100644 index 0000000..4511c24 --- /dev/null +++ b/test-plans/Hello.vb @@ -0,0 +1,33 @@ +' First of all, this comment should be highlighted in a different +' font than the code. +' +' Next, the Function, Class, and Sub declarations should be +' highlighted. Their respective names should also be highlighted, but +' in a different font than the rest of the declaration. +Public Function IsProgramRunning() As Boolean + ' The name of the variable is in the normal font face, but the + ' keyword True should be highlighted. + IsProgramRunning = True +End Function + +Public Class HelloWorld + ' Strings get their own font face. + Private hello_text As String = "Hello, World!" + + Public Sub DoHello() + Console.WriteLine(Me.hello_text) + End Sub +End Class + +Sub Main() + ' If you press <Tab> on the following lines, that line + ' should be auto-indented to eight spaces (the visual-basic-mode + ' default). + Dim ipr As Boolean = IsProgramRunning() + Dim hw As New HelloWorld() + + ' However, if you press <Tab> on the next line, it should be + ' indented to four spaces to match the line above it (i.e. this + ' comment). + hw.DoHello() +End Sub diff --git a/test-plans/Interp2.lhs b/test-plans/Interp2.lhs new file mode 100644 index 0000000..f32e9d6 --- /dev/null +++ b/test-plans/Interp2.lhs @@ -0,0 +1,111 @@ +> {-# OPTIONS -fglasgow-exts #-} + +Parameterized Syntax +~~~~~~~~~~~~~~~~~~~~ + +> type Name = String +> +> data Expr e d = Let d e +> | App e e +> | Var Name +> | Int Int +> +> data Decl e d = Fun Name [Name] e + + +Parameterized Semantics +~~~~~~~~~~~~~~~~~~~~~~~ + +> data Val = IntVal Int | FunVal (Val -> Val) +> type Env = [(Name,Val)] +> +> class Eval e d | e -> d, d -> e where +> expr :: e -> Env -> Val +> decl :: d -> Env -> Env +> +> instance (Eval e d) => Eval (Expr e d) (Decl e d) where +> expr e env = case e of +> Let d e -> expr e (decl d env ++ env) +> App e1 e2 -> case expr e1 env of +> FunVal f -> f (expr e2 env) +> _ -> error "Type error." +> Var x -> case lookup x env of +> Just v -> v +> Nothing -> error "Undefined variable." +> Int x -> IntVal x +> +> decl d env = case d of +> Fun f xs e -> [(f,args env xs)] +> where args env (x:xs) = FunVal (\v -> args ((x,v):env) xs) +> args env [] = expr e env + + +Language 1: Tying the Knot +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +> newtype Expr1 = E1 (Expr Expr1 Decl1) +> newtype Decl1 = D1 (Decl Expr1 Decl1) +> +> instance Eval Expr1 Decl1 where +> expr (E1 e) env = expr e env +> decl (D1 e) env = decl e env + +Examples: + +> var1 x = E1 $ Var x +> int1 x = E1 $ Int x +> app1 f x = E1 $ App f x +> let1 d e = E1 $ Let d e +> fun1 f xs e = D1 $ Fun f xs e +> +> test1 e = expr +> ( let1 (fun1 "id" ["x"] $ var1 "x") +> $ let1 (fun1 "const" ["x","y"] $ var1 "x") e) [] +> +> ex1 = test1 $ var1 "id" `app1` int1 2 +> ex2 = test1 $ var1 "const" `app1` int1 2 `app1` int1 3 +> ex3 = test1 $ var1 "const" `app1` var1 "id" `app1` int1 2 `app1` int1 3 + + +Language 2: Tying the Know with an Extension +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +> data Expr2 = E2 (Expr Expr2 Decl2) +> | Add Expr2 Expr2 +> newtype Decl2 = D2 (Decl Expr2 Decl2) +> +> instance Eval Expr2 Decl2 where +> expr (E2 e) env = expr e env +> expr (Add e1 e2) env = case (expr e1 env, expr e2 env) of +> (IntVal x, IntVal y) -> IntVal (x+y) +> _ -> error "Type error." +> decl (D2 d) env = decl d env + +Examples: + +> var2 x = E2 $ Var x +> int2 x = E2 $ Int x +> app2 f x = E2 $ App f x +> let2 d e = E2 $ Let d e +> fun2 f xs e = D2 $ Fun f xs e +> +> test2 e = expr +> ( let2 (fun2 "id" ["x"] $ var2 "x") +> $ let2 (fun2 "const" ["x","y"] $ var2 "x") e) [] +> +> ex4 = test2 $ var2 "id" `app2` int2 2 +> ex5 = test2 $ var2 "const" `app2` int2 2 `app2` int2 3 +> ex6 = test2 $ var2 "const" `app2` var2 "id" `app2` int2 2 `app2` int2 3 +> ex7 = test2 $ var2 "id" `app2` (int2 3 `Add` int2 7) + + +> instance Show Val where +> show val = case val of +> IntVal x -> show x +> FunVal _ -> error "<function>" + + + + + + diff --git a/test-plans/LICENSES b/test-plans/LICENSES new file mode 100644 index 0000000..a1dd8b8 --- /dev/null +++ b/test-plans/LICENSES @@ -0,0 +1,116 @@ +List of licenses for example files. Format of entries is: + +category/package + filename license origin/comment + +------------------------------------------------------ + +app-emacs/auctex + circ.tex GPL-3+ AUCTeX + +app-emacs/autoconf-mode + aclocal.m4 permissive aclocal + +app-emacs/cldoc + cldoc-test.lisp public-domain trivial + +app-emacs/cperl-mode + example.pl GPL-1+/Artistic Archive-Zip + +app-emacs/csharp-mode + test.cs public-domain trivial + +app-emacs/csv-mode + test.csv public-domain trivial + +app-emacs/develock + ChangeLog permissive GNU Emacs + +app-emacs/doxymacs + use_flag.h GPL-2 Gatt + +app-emacs/dts-mode + p1025rdb.dtsi BSD || GPL-2+ Linux kernel (arch/powerpc/boot/dts) + p1025rdb_32b.dts BSD || GPL-2+ Linux kernel (arch/powerpc/boot/dts) + +app-emacs/flashcard + emacs.deck public-domain trivial + +app-emacs/graphviz-dot-mode + helloworld.dot public-domain trivial + +app-emacs/haskell-mode + Interp2.lhs approx. MIT http://www.haskell.org/haskellwiki/File:Interp2.lhs + +app-emacs/initsplit + dotemacs.initsplit public-domain trivial + +app-emacs/jam-mode + strawberry.jam public-domain trivial + +app-emacs/jasmin + hello.j CC-BY-SA-3.0 http://en.wikipedia.org/wiki/Jasmin_(software) + +app-emacs/javascript + lcm.js CC-BY-SA-3.0 http://en.wikipedia.org/wiki/JavaScript + +app-emacs/lua-mode + alt_getopt.lua MIT TeXlive + +app-emacs/matlab + test.m public-domain trivial + +app-emacs/mmm-mode + mmm-example.sh Texinfo-manual mmm-mode + +app-emacs/mode-compile + hello.c public-domain trivial + +app-emacs/muse + test.muse public-domain trivial + +app-emacs/nagios-mode + test_suite.cfg GPL-3+ nagios-mode + +app-emacs/nxml-mode + test.valid.xml public-domain trivial + test.invalid.xml public-domain trivial + +app-emacs/ocaml-mode, app-emacs/tuareg-mode + text.ml LGPL-2+ OCaml + +app-emacs/org-mode + example.org FDL-1.3+ org-mode + +app-emacs/php-mode + admin.php GPL-2 GAMMU + +app-emacs/po-mode + cups_de.po GPL-2 CUPS + +app-emacs/psql + test.sql public-domain trivial + +app-emacs/rst + example.rst public-domain trivial + +app-emacs/ruby-mode + biorhythm.rb BSD-2 Ruby + +app-emacs/sml-mode + test.sml public-domain trivial + +app-emacs/teco + example.teco unknown 99-bottles-of-beer.net + +app-emacs/vhdl-mode + example.vhdl CC-BY-SA-3.0 http://en.wikipedia.org/wiki/VHDL + +app-emacs/visual-basic-mode + Hello.vb public-domain https://bugs.gentoo.org/506866#c7 + +app-emacs/xrdb-mode + Emacs.ad public-domain trivial + +app-emacs/xslide + test.xsl public-domain trivial diff --git a/test-plans/aclocal.m4 b/test-plans/aclocal.m4 new file mode 100644 index 0000000..76038d3 --- /dev/null +++ b/test-plans/aclocal.m4 @@ -0,0 +1,600 @@ +# generated automatically by aclocal 1.10 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_if(m4_PACKAGE_VERSION, [2.61],, +[m4_fatal([this file was generated for autoconf 2.61. +You have another version of autoconf. If you want to use that, +you should regenerate the build system entirely.], [63])]) + +# Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.10' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.10], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.10])dnl +_AM_AUTOCONF_VERSION(m4_PACKAGE_VERSION)]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 12 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.60])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_PROG_INSTALL_SH +AM_PROG_INSTALL_STRIP +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $1 | $1:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, +# 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 10 + +# AM_PATH_LISPDIR +# --------------- +AC_DEFUN([AM_PATH_LISPDIR], +[AC_PREREQ([2.60])dnl + # If set to t, that means we are running in a shell under Emacs. + # If you have an Emacs named "t", then use the full path. + test x"$EMACS" = xt && EMACS= + AC_CHECK_PROGS([EMACS], [emacs xemacs], [no]) + AC_ARG_VAR([EMACS], [the Emacs editor command]) + AC_ARG_VAR([EMACSLOADPATH], [the Emacs library search path]) + AC_ARG_WITH([lispdir], + [ --with-lispdir override the default lisp directory], + [ lispdir="$withval" + AC_MSG_CHECKING([where .elc files should go]) + AC_MSG_RESULT([$lispdir])], + [ + AC_CACHE_CHECK([where .elc files should go], [am_cv_lispdir], [ + if test $EMACS != "no"; then + if test x${lispdir+set} != xset; then + # If $EMACS isn't GNU Emacs or XEmacs, this can blow up pretty badly + # Some emacsen will start up in interactive mode, requiring C-x C-c to exit, + # which is non-obvious for non-emacs users. + # Redirecting /dev/null should help a bit; pity we can't detect "broken" + # emacsen earlier and avoid running this altogether. + AC_RUN_LOG([$EMACS -batch -q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' </dev/null >conftest.out]) + am_cv_lispdir=`sed -n \ + -e 's,/$,,' \ + -e '/.*\/lib\/x*emacs\/site-lisp$/{s,.*/lib/\(x*emacs/site-lisp\)$,${libdir}/\1,;p;q;}' \ + -e '/.*\/share\/x*emacs\/site-lisp$/{s,.*/share/\(x*emacs/site-lisp\),${datarootdir}/\1,;p;q;}' \ + conftest.out` + rm conftest.out + fi + fi + test -z "$am_cv_lispdir" && am_cv_lispdir='${datadir}/emacs/site-lisp' + ]) + lispdir="$am_cv_lispdir" +]) +AC_SUBST([lispdir]) +])# AM_PATH_LISPDIR + +AU_DEFUN([ud_PATH_LISPDIR], [AM_PATH_LISPDIR]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputing VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar <conftest.tar]) + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([m4/m4.m4]) diff --git a/test-plans/admin.php b/test-plans/admin.php new file mode 100644 index 0000000..7fc1ddd --- /dev/null +++ b/test-plans/admin.php @@ -0,0 +1,758 @@ +<?
+# CONFIGURATION
+//they can be defined or not. if not, interface will give login form
+//$db_serv="127.0.0.1";
+//$db_user="root";
+//$db_pass="";
+
+//these must be defined
+$dokument="admin.php"; //name of current document
+$delall = true; //should be Delete All available for folders ?
+$max_limit=1; //maximal number of sms for outgoing sms editor
+
+#############################
+## DO NOT CHANGE BELOW !!! ##
+#############################
+
+$inbox="UpdatedInDB,ReceivingDateTime,Text,SenderNumber,Coding,UDH,SMSCNumber,Class,TextDecoded,ID,RecipientID";
+$outbox="UpdatedInDB,InsertIntoDB,Text,DestinationNumber,Coding,UDH,Class,TextDecoded,ID,MultiPart,RelativeValidity,SendingDateTime,SenderID,SendingTimeOut,DeliveryReport";
+$outbox_multipart="Text,Coding,UDH,Class,TextDecoded,ID,SequencePosition";
+$sentitems="UpdatedInDB,InsertIntoDB,SendingDateTime,DeliveryDateTime,Text,DestinationNumber,Coding,UDH,SMSCNumber,Class,TextDecoded,ID,SenderID,SequencePosition,Status,StatusError,TPMR,RelativeValidity";
+$phones="ID,InsertIntoDB,TimeOut,Send,Receive,IMEI,Client";
+$daemons="Start,Info";
+
+function dispdatetime($dt)
+{
+ return "$dt[0]$dt[1]$dt[2]$dt[3]-$dt[5]$dt[6]-$dt[8]$dt[9] $dt[11]$dt[12]:$dt[14]$dt[15]:$dt[17]$dt[18]";
+}
+function dispdate($dt)
+{
+ return "$dt[0]$dt[1]$dt[2]$dt[3]-$dt[5]$dt[6]-$dt[8]$dt[9]";
+}
+function dispsmsinfo($class,$udh,$text,$textdecoded,$coding)
+{
+ if (!$udh == "") {
+ echo "UDH AVAILABLE<br>\n";
+ }
+ if ($class == "0" || $class == "1" || $class == "2" || $class == "3") {
+ echo "Class: $class<br>\n";
+ }
+ if ($coding == "8bit") {
+ echo "BINARY<br>\n";
+ } else {
+ if (!$text == "") echo "<b>";
+ if ($coding == "Unicode_No_Compression" || $coding == "Unicode_Compression") {
+ echo "Unicode t";
+ } else {
+ echo "T";
+ }
+ if ($textdecoded == "") {
+ echo "ext</b><br>\n";
+ } else {
+ echo "ext</b>: $textdecoded<br>\n";
+ }
+ if ($text == "") echo "</b>";
+ echo "<br>\n";
+ }
+}
+function dispvalidity($validity) {
+ if ($validity == -1) {
+ echo "default";
+ } else if ($validity == 0) {
+ echo "5 minutes";
+ } else if ($validity == 255) {
+ echo "max. time";
+ } else {
+ echo "$validity";
+ }
+}
+
+$arg="";
+if (!isset($db_serv) && isset($_GET['serv'])) {
+ $db_serv = $_GET['serv'];
+ if ($arg == "") {$arg="?";} else {$arg=$arg."&";};
+ $arg = $arg . "serv=$db_serv";
+ $dbservorig=false;
+}
+if (!isset($db_user) && isset($_GET['user'])) {
+ $db_user = $_GET['user'];
+ if ($arg == "") {$arg="?";} else {$arg=$arg."&";};
+ $arg = $arg . "user=$db_user";
+ $dbuserorig=false;
+}
+if (!isset($db_pass) && isset($_GET['pass'])) {
+ $db_pass = $_GET['pass'];
+ if ($arg == "") {$arg="?";} else {$arg=$arg."&";};
+ $arg = $arg . "pass=$db_pass";
+ $dbpassorig=false;
+}
+if ($arg == "") {$arg="?";} else {$arg=$arg."&";};
+
+if (!isset($db_name) && isset($_GET['db'])) {
+ $db_name = $_GET['db'];
+}
+
+if (isset($db_pass) && isset($db_user) && isset($db_serv)) {
+ $dbpass = @mysql_connect("$db_serv","$db_user","$db_pass");
+ if ($dbpass) {
+ mysql_query("SET NAMES UTF8;");
+ if (isset($db_name)) {
+ $dbconnect = mysql_select_db("$db_name");
+ }
+ }
+}
+
+if (isset($dbpass) && isset($dbconnect) && isset($_GET['op']) &&
+ isset($_GET['year']) && isset($_GET['month']) && isset($_GET['day']) &&
+ isset($_GET['hour']) && isset($_GET['minute']) && isset($_GET['second']) &&
+ isset($_GET['number']) && isset($_GET['tresc']) && isset($_GET['validity']) &&
+ isset($_GET['report']) && isset($_GET['phone']))
+{
+ if ($_GET['op']=="addsms") {
+ $year = $_GET['year'];
+ $month = $_GET['month'];
+ $day = $_GET['day'];
+ $hour = $_GET['hour'];
+ $minute = $_GET['minute'];
+ $second = $_GET['second'];
+ $datoom="$year$month$day$hour$minute$second";
+ $number=$_GET['number'];
+ $tresc=$_GET['tresc'];
+ $validity=$_GET['validity'];
+ if (isset($_GET['class'])) {
+ $class = $_GET['class'];
+ } else {
+ $class = "-1";
+ }
+ $phone = $_GET['phone'];
+ $report = $_GET['report'];
+ if (strlen($tresc) > 160) {
+// $result2 = mysql_db_query("$db_name","select ID from outbox order by ID desc limit 1");
+// $rekord2 = mysql_fetch_row($result2);
+// if ($rekord == null) {
+// $newid = 0;
+// } else {
+// $newid = $rekord2[0];
+// }
+// mysql_free_result($result2);
+// $pos = 0;
+// $text = "";
+ } else {
+ if ($report == "yes") {
+ mysql_query ("insert into outbox(UpdatedInDB,InsertIntoDB,Class,DestinationNumber,TextDecoded,SendingDateTime,RelativeValidity,SenderID,DeliveryReport,Coding) VALUES(now(),now(),'$class','$number','$tresc','$datoom','$validity','$phone','yes','Default_No_Compression')");
+ }
+ if ($report == "no") {
+ mysql_query ("insert into outbox(UpdatedInDB,InsertIntoDB,Class,DestinationNumber,TextDecoded,SendingDateTime,RelativeValidity,SenderID,DeliveryReport,Coding) VALUES(now(),now(),'$class','$number','$tresc','$datoom','$validity','$phone','no','Default_No_Compression')");
+ }
+ if ($report == "default") {
+ mysql_query ("insert into outbox(UpdatedInDB,InsertIntoDB,Class,DestinationNumber,TextDecoded,SendingDateTime,RelativeValidity,SenderID,Coding) VALUES(now(),now(),'$class','$number','$tresc','$datoom','$validity','$phone','Default_No_Compression')");
+ }
+ }
+ }
+}
+
+if (isset($dbpass) && isset($dbconnect) && isset($_GET['op']) && isset($_GET['dzial'])) {
+ if ($_GET['op']=="del") {
+ if (isset($_GET['id'])) {
+ $dzial = $_GET['dzial'];
+ $id = $_GET['id'];
+ mysql_query ("delete from $dzial where id='$id'");
+ if ($dzial == "outbox") {
+ mysql_query ("delete from outbox_multipart where id='$id'");
+ }
+ } else if ($delall) {
+ $dzial = $_GET['dzial'];
+ mysql_query ("delete from $dzial");
+ if ($dzial == "outbox") {
+ mysql_query ("delete from outbox_multipart");
+ }
+ }
+ }
+ $_GET['op']=$dzial;
+}
+
+echo "<HTML>\n<HEAD>\n";
+echo " <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />";
+
+echo "<STYLE TYPE=text/css>\n";
+echo "<!--\n";
+echo "BODY {text-decoration: none; color: #404040; font-family: verdana, arial; font-weight: normal; font-size: 10px; margin-left: 0pt; margin-right: 0pt; margin-top: 0pt; margin-bottom: 0pt}\n";
+echo "input,select,option {text-decoration: none; color: #404040; font-family: verdana, arial; font-weight: normal; font-size: 10px;}\n";
+echo "TD,P,BR {text-decoration: none; color: #404040; font-family: verdana, arial; font-weight: normal; font-size: 10px;}\n";
+echo "B {text-decoration: none; font-family: verdana, arial; font-weight: bold; font-size: 10px;}\n";
+echo "LI {text-decoration: none; color: #404040; font-family: verdana, arial; font-weight: normal; font-size: 10px;}\n";
+echo "A:link {text-decoration: none; color: navy; font-family: verdana, arial; font-weight: normal; font-variant: small-caps; font-size: 10px;}\n";
+echo "A:visited {text-decoration: none; color: navy; font-family: verdana, arial; font-weight: normal; font-variant: small-caps; font-size: 10px;}\n";
+echo "A:active {text-decoration: none; color: navy; font-family: verdana, arial; font-weight: normal; font-variant: small-caps; font-size: 10px;}\n";
+echo "A:hover {text-decoration: none; color: red; font-family: verdana, arial; font-weight: normal; font-variant: small-caps; font-size: 10px;}\n";
+echo "-->\n";
+echo "</STYLE>\n";
+echo "<TITLE>SMS SERVER based on GAMMU</TITLE>\n<body bgcolor=#ededed>\n";
+
+if (isset($dbpass) && isset($dbconnect) && isset($_GET['op']) && isset($_GET['action'])) {
+ if ($_GET['op']=="daemons") {
+ $action = urldecode($_GET['action']);
+ popen ($action, "r");
+ }
+}
+
+if (isset($dbpass) && isset($dbconnect) && isset($_GET['op']) && isset($_GET['year']) && isset($_GET['month']) && isset($_GET['day']) && isset($_GET['hour']) && isset($_GET['minute']) && isset($_GET['second']) && isset($_GET['number']) && isset($_GET['tresc']) && isset($_GET['validity'])) {
+ if ($_GET['op']=="addsms") {
+ echo "<script>";
+ echo "document.location.href='$dokument$arg"."db=$db_name&op=outbox';";
+ echo "</script>";
+ }
+}
+
+if (!isset($dbpass)) {
+ echo "<b>LOGIN</b><p>\n";
+ echo "<form method=\"GET\" action=$dokument name=login>\n<table>\n";
+ echo "<tr><td>Server address:port :</td><td><input name=serv maxlength=20></td></tr>\n";
+ echo "<tr><td>Name :</td><td><input name=user maxlength=20></td></tr>\n";
+ echo "<tr><td>Password :</td><td><input name=pass maxlength=20></td></tr>\n";
+ echo "<tr><td colspan=2><input type=submit name=send value=SEND OnClick=\"if (login.db_serv.value=='') {alert('Sender number not filled'); return false;} else return true;\"></td></tr></table></form>\n";
+ exit;
+}
+if (!$dbpass) {
+ echo " <p><center>Authorization error with MySQL server\n";
+
+ if (isset($dbservorig) || isset($dbuserorig) || isset($dbpassorig)) {
+ echo "<p><a href=ala OnClick=\"history.back(); return false;\">Back to login form</a>";
+ }
+
+ echo "</center></body>\n</html>";
+ exit;
+}
+if (isset($dbconnect) && !$dbconnect) {
+ echo " <p><center>No database in MySQL server</center>\n</body>\n</html>";
+ exit;
+}
+
+echo "<script language=JavaScript>\n";
+echo "function Del(ID) {\n";
+echo " return confirm(\"Do you want to delete SMS with ID \"+ID+\" ?\");\n";
+echo "}\n";
+if ($delall) {
+ echo "function DelAll(ID) {\n";
+ echo " if (confirm(\"Do you want to delete all SMS from \"+ID+\" ?\")) {\n";
+ echo " if (confirm(\"REALLY ?\")) {\n";
+ echo " return true;\n";
+ echo " }\n";
+ echo " }\n";
+ echo " return false;\n";
+ echo "}\n";
+ echo "function update() {\n";
+ if ($max_limit == 1) {
+ echo " if (document.newsms.tresc.value.length > 160) {\n";
+ echo " document.newsms.tresc.value = document.newsms.tresc.value.substring(0, 160);";
+ } else {
+ echo " if (document.newsms.tresc.value.length > ". 153*$max_limit .") {\n";
+ echo " document.newsms.tresc.value = document.newsms.tresc.value.substring(0, ". 153*$max_limit .");";
+ }
+ echo " \n }\nif (document.newsms.tresc.value.length > 160) {\n";
+ echo " document.newsms.smsnum.value = Math.ceil(document.newsms.tresc.value.length/153);\n";
+ echo " document.newsms.left.value = document.newsms.smsnum.value*153 - document.newsms.tresc.value.length;\n";
+ echo " } else {\n";
+ echo " document.newsms.smsnum.value = 1;\n";
+ echo " document.newsms.left.value = 160 - document.newsms.tresc.value.length;\n";
+ echo " }\n";
+ echo "}\n";
+}
+echo "</script>\n";
+echo "<table width = 100% cellspacing=1 cellpadding=5 border=0 bgcolor=silver>\n";
+echo "<tr>\n<td colspan=2 bgcolor=red>\n";
+echo "<b><font color=white size=2 face=verdana>SMS Gateway example, user $db_user</font></b>";
+echo "</td>\n</tr>\n<tr>\n<td bgcolor=whitesmoke valign=top>";
+
+#MENU
+
+if (isset($dbservorig) || isset($dbuserorig) || isset($dbpassorig)) {
+ echo "<nobr><a href=$dokument>OTHER USER</a></nobr><br>\n";
+}
+
+$result0 = mysql_list_dbs($dbpass);
+while ($row0 = mysql_fetch_object($result0)) {
+ $result = mysql_db_query("$row0->Database","select Version from gammu");
+ $rekord = @mysql_fetch_row($result);
+ if (!$rekord) continue;
+ mysql_free_result($result);
+ if ($rekord[0]!='7') continue;
+
+ $result2 = @mysql_list_tables($row0->Database);
+ if (!$result2) continue;
+ $found = false;
+ while ($row2 = mysql_fetch_row($result2)) {
+ if ($row2[0] == "inbox") $found = true;
+ if ($row2[0] == "outbox") $found = true;
+ if ($row2[0] == "outbox_multipart") $found = true;
+ if ($row2[0] == "sentitems") $found = true;
+ }
+ mysql_free_result($result2);
+ if (!$found) continue;
+ if (!isset($_GET['db']) || $_GET['db']!=$row0->Database) {
+ echo "<a href=$dokument$arg"."db=$row0->Database>[>>] $row0->Database</a><br>\n";
+ continue;
+ }
+ echo "<a href=$dokument$arg"."x=x>[<<] $row0->Database</a><br>\n";
+
+ echo "  <a href=$dokument$arg"."db=$row0->Database&op=daemons>DAEMONS</a><br>\n";
+ echo "  <a href=$dokument$arg"."db=$row0->Database&op=phones>PHONES</a><p>\n";
+
+ echo "<nobr>  <a href=$dokument$arg"."db=$row0->Database&op=newsms>NEW OUTBOX SMS</a></nobr><br><br>\n";
+
+ echo "  <a href=$dokument$arg"."db=$row0->Database&op=inbox>INBOX</a><br>\n";
+ if (isset($_GET['op']) && $_GET['op']=="inbox") {
+ $result = mysql_db_query("$db_name","select substring(ReceivingDateTime,1,10) from inbox group by substring(ReceivingDateTime,1,10) order by substring(ReceivingDateTime,1,10) desc");
+ while($rekord = mysql_fetch_row($result)) {
+ $d = dispdate($rekord[0]);
+ echo "     · <a href=$dokument$arg"."db=$row0->Database&op=inbox&date=$rekord[0]>$d</a><br>";
+ }
+ mysql_free_result($result);
+ }
+
+ echo "  <a href=$dokument$arg"."db=$row0->Database&op=outbox>OUTBOX</a><br>\n";
+ if (isset($_GET['op']) && $_GET['op']=="outbox") {
+ $result = mysql_db_query("$db_name","select substring(SendingDateTime,1,10) from outbox group by substring(SendingDateTime,1,10) order by substring(SendingDateTime,1,10) desc");
+ while($rekord = mysql_fetch_row($result)) {
+ $d = dispdate($rekord[0]);
+ echo "     · <a href=$dokument$arg"."db=$row0->Database&op=outbox&date=$rekord[0]>$d</a><br>";
+ }
+ mysql_free_result($result);
+ }
+
+ echo "  <a href=$dokument$arg"."db=$row0->Database&op=sentitems>SENT ITEMS</a><br>\n";
+ if (isset($_GET['op']) && $_GET['op']=="sentitems") {
+ $result = mysql_db_query("$db_name","select $sentitems,substring(SendingDateTime,1,10) from sentitems group by substring(SendingDateTime,1,10) order by substring(SendingDateTime,1,10) desc");
+ while($rekord = mysql_fetch_row($result)) {
+ $d = dispdate($rekord[18]);
+ echo "     · <a href=$dokument$arg"."db=$row0->Database&op=sentitems&date=$rekord[18]>$d</a><br>";
+ }
+ mysql_free_result($result);
+ }
+}
+mysql_free_result($result0);
+
+# /MENU
+
+echo "</td>\n<td bgcolor=whitesmoke valign=top>\n";
+
+#TRESC
+
+if (isset($_GET['op'])) {
+ if ($_GET['op']=="inbox") {
+ $innum = 0;
+ echo "<b>DATABASE $db_name, INBOX";
+ if (isset($_GET['date']) && $_GET['date']!="") {
+ $d = $_GET['date'];
+ $d2 = dispdate($d);
+ echo " $d2";
+ }
+ echo "</b><br><br>\n";
+ echo "<table width=620 cellspacing=1 border=1>";
+ echo "<tr bgcolor=gold><td>ID</td>\n";
+ echo "<td>FROM</td>\n";
+ echo "<td>SMSC</td>\n";
+ echo "<td>CLASS</td>\n";
+ echo "<td>RECEIVE TIME</td>\n";
+ echo "<td>PHONE</td>\n";
+ if ($delall) {
+ echo "<td><a href=$dokument$arg"."db=$db_name&op=del&dzial=inbox Title='Click to delete all SMS' OnClick=\"return DelAll('Inbox');\">[X]</td></tr>\n";
+ } else {
+ echo "<td></td></tr>\n";
+ }
+ if (!isset($_GET['date']) || $_GET['date']=="") {
+ $result = mysql_db_query("$db_name","select $inbox from inbox order by ReceivingDateTime desc");
+ } else {
+ $d = $_GET['date'];
+ $result = mysql_db_query("$db_name","select $inbox from inbox where ReceivingDateTime like '$d%' order by ReceivingDateTime desc");
+ }
+ while($rekord = mysql_fetch_row($result)) {
+ $innum++;
+ if (!isset($_GET['date']) || $_GET['date']=="") {
+ if (isset($_GET['id']) && $_GET['id']!="" && $_GET['id'] == $rekord[9]) {
+ echo "<tr><td>$rekord[9] <a href=$dokument$arg"."db=$db_name&op=inbox title='Click to hide details'>[<<]</a></td>";
+ } else {
+ echo "<tr><td>$rekord[9] <a href=$dokument$arg"."db=$db_name&op=inbox&id=$rekord[9] title='Click to display details'>[>>]</a></td>";
+ }
+ } else {
+ if (isset($_GET['id']) && $_GET['id']!="" && $_GET['id'] == $rekord[9]) {
+ echo "<tr><td>$rekord[9] <a href=$dokument$arg"."db=$db_name&op=inbox&date=$d title='Click to hide details'>[<<]</a></td>";
+ } else {
+ echo "<tr><td>$rekord[9] <a href=$dokument$arg"."db=$db_name&op=inbox&date=$d&id=$rekord[9] title='Click to display details'>[>>]</a></td>";
+ }
+ }
+ echo "<td>$rekord[3]</td><td>$rekord[6]</td>";
+ if ($rekord[7] == "-1") {
+ echo "<td>not set</td>";
+ } else {
+ echo "<td>$rekord[7]</td>";
+ }
+ $d2 = dispdatetime($rekord[1]);
+ echo "<td>$d2</td>";
+ echo "<td>$rekord[10]</td>";
+ if (!isset($_GET['date']) || $_GET['date']=="") {
+ echo "<td><a href=$dokument$arg"."db=$db_name&op=del&dzial=inbox&id=$rekord[9] OnClick=\"return Del($rekord[9]);\" Title='Click to delete'>[X]</a></td></tr>";
+ } else {
+ echo "<td><a href=$dokument$arg"."db=$db_name&op=del&dzial=inbox&date=$d&id=$rekord[9] OnClick=\"return Del($rekord[9]);\" Title='Click to delete'>[X]</a></td></tr>";
+ }
+ if (isset($_GET['id']) && $_GET['id']!="" && $_GET['id'] == $rekord[9]) {
+ $op = $_GET['op'];
+ $id = $_GET['id'];
+ echo "</tr><tr><td colspan=7 bgcolor=white>";
+ $d2 = dispdatetime($rekord[0]);
+ echo "Last changed in DB: $d2<br>";
+ $d2 = dispdatetime($rekord[1]);
+ echo "Insert into DB: $d2<br>";
+ dispsmsinfo($rekord[7],$rekord[5],$rekord[2],$rekord[8],$rekord[4]);
+ echo "</td></tr>\n";
+ }
+ }
+ mysql_free_result($result);
+ echo "</table>";
+ echo "<br>$innum SMS received";
+ }
+ if ($_GET['op']=="outbox") {
+ $outduring = 0;
+ $outfuture = 0;
+ echo "<b>DATABASE $db_name, OUTBOX";
+ if (isset($_GET['date']) && $_GET['date']!="") {
+ $d = $_GET['date'];
+ $d2 = dispdate($d);
+ echo " $d2";
+ }
+ echo "</b><br><br>\n";
+ echo "<table width=620 cellspacing=1 border=1>";
+ echo "<tr bgcolor=gold><td>ID</td>\n";
+ echo "<td>TO</td>\n";
+ echo "<td>TIME 2BE SENT</td>\n";
+ echo "<td>PARTS</td>\n";
+ echo "<td>VALIDITY</td>\n";
+ echo "<td>SENDING</td>\n";
+ echo "<td>PHONE</td>\n";
+ echo "<td>REPORT</td>\n";
+ if ($delall) {
+ echo "<td><a href=$dokument$arg"."db=$db_name&op=del&dzial=outbox Title='Click to delete all SMS' OnClick=\"return DelAll('Outbox');\">[X]</td></tr>\n";
+ } else {
+ echo "<td></td></tr>\n";
+ }
+ if (!isset($_GET['date']) || $_GET['date']=="") {
+ $result = mysql_db_query("$db_name","select $outbox from outbox order by SendingDateTime desc");
+ } else {
+ $d = $_GET['date'];
+ $result = mysql_db_query("$db_name","select $outbox from outbox where SendingDateTime like '$d%' order by SendingDateTime desc");
+ }
+ while($rekord = mysql_fetch_row($result)) {
+ if (!isset($_GET['date']) || $_GET['date']=="") {
+ if (isset($_GET['id']) && $_GET['id']!="" && $_GET['id'] == $rekord[8]) {
+ echo "<tr><td>$rekord[8] <a href=$dokument$arg"."db=$db_name&op=outbox title='Click to hide details'>[<<]</a></td>";
+ } else {
+ echo "<tr><td>$rekord[8] <a href=$dokument$arg"."db=$db_name&op=outbox&id=$rekord[8] title='Click to display details'>[>>]</a></td>";
+ }
+ } else {
+ if (isset($_GET['id']) && $_GET['id']!="" && $_GET['id'] == $rekord[8]) {
+ echo "<tr><td>$rekord[8] <a href=$dokument$arg"."db=$db_name&op=outbox&date=$d title='Click to hide details'>[<<]</a></td>";
+ } else {
+ echo "<tr><td>$rekord[8] <a href=$dokument$arg"."db=$db_name&op=outbox&date=$d&id=$rekord[8] title='Click to display details'>[>>]</a></td>";
+ }
+ }
+ echo "<td>$rekord[3]</td>";
+ $d2 = dispdatetime($rekord[11]);
+ echo "<td>$d2</td>";
+ $counter = 1;
+ if ($rekord[9] == "true") {
+ $result2 = mysql_db_query("$db_name","select $outbox_multipart from outbox_multipart where id='$rekord[8]'");
+ while($rekord2 = mysql_fetch_row($result2)) $counter++;
+ mysql_free_result($result2);
+ }
+ echo "<td>$counter</td><td>";
+ dispvalidity($rekord[10]);
+ if ($rekord[13] != "00000000000000") {
+ $result2 = mysql_db_query("$db_name","select now()+0;");
+ $rekord2 = mysql_fetch_row($result2);
+ if ($rekord[13]<$rekord2[0]) {
+ echo "</td><td>no (earlier failed)</td><td>";
+ $outfuture++;
+ } else {
+ echo "</td><td>yes (now)</td><td>";
+ $outduring++;
+ }
+ mysql_free_result($result2);
+ } else {
+ echo "</td><td>no (earlier not tried)</td><td>";
+ $outfuture++;
+ }
+ if ($rekord[12] == "") {
+ echo "<< any >>";
+ } else {
+ echo "$rekord[12]";
+ }
+ echo "</td><td>$rekord[14]</td><td>";
+ if (!isset($_GET['date']) || $_GET['date']=="") {
+ echo "<a href=$dokument$arg"."db=$db_name&op=del&dzial=outbox&id=$rekord[8] Title='Click to delete' OnClick=\"return Del($rekord[8]);\" >[X]</a></td></tr>";
+ } else {
+ echo "<a href=$dokument$arg"."db=$db_name&op=del&dzial=outbox&date=$d&id=$rekord[8] Title='Click to delete' OnClick=\"return Del($rekord[8]);\" >[X]</a></td></tr>";
+ }
+
+ if (isset($_GET['id']) && $_GET['id']!="" && $_GET['id'] == $rekord[8]) {
+ $op = $_GET['op'];
+ $id = $_GET['id'];
+ echo "</tr><tr><td colspan=9 bgcolor=white>";
+ $result2 = mysql_db_query("$db_name","select $outbox from outbox where ID='$id'");
+ while($rekord2 = mysql_fetch_row($result2)) {
+ $d2 = dispdatetime($rekord2[0]);
+ echo "Last changed in DB: $d2<br>";
+ $d2 = dispdatetime($rekord2[1]);
+ echo "Insert into DB: $d2<br>";
+ if ($rekord2[9] == "true") {
+ echo "<hr size=1 color=silver>";
+ }
+ dispsmsinfo($rekord2[6],$rekord2[5],$rekord2[2],$rekord2[7],$rekord2[4]);
+ if ($rekord[9] == "true") {
+ $result3 = mysql_db_query("$db_name","select $outbox_multipart from outbox_multipart where id='$rekord[8]'");
+ while($rekord3 = mysql_fetch_row($result3)) {
+ echo "<hr size=1 color=silver>";
+ dispsmsinfo($rekord3[3],$rekord3[2],$rekord3[0],$rekord3[4],$rekord3[1]);
+ }
+ mysql_free_result($result3);
+ }
+ }
+ mysql_free_result($result2);
+ echo "</td></tr>\n";
+ }
+ }
+ mysql_free_result($result);
+ echo "</table>";
+ echo "<br>$outduring SMS sequences during sending, $outfuture SMS sequences waiting for sending";
+ }
+ if ($_GET['op']=="sentitems") {
+ $sentnum = 0;
+ echo "<b>DATABASE $db_name, SENT ITEMS";
+ if (isset($_GET['date']) && $_GET['date']!="") {
+ $d = $_GET['date'];
+ $d2 = dispdate($d);
+ echo " $d2";
+ }
+ echo "</b><br><br>\n";
+ echo "<table width=620 cellspacing=1 border=1>";
+ echo "<tr bgcolor=gold><td>ID</td>\n";
+ echo "<td>TO</td>\n";
+ echo "<td>SMSC</td>\n";
+ echo "<td>UPDATED</td>\n";
+ echo "<td>PHONE</td>\n";
+ if ($delall) {
+ echo "<td><a href=$dokument$arg"."db=$db_name&op=del&dzial=sentitems Title='Click to delete all SMS' OnClick=\"return DelAll('Sent Items');\">[X]</td></tr>\n";
+ } else {
+ echo "<td></td></tr>\n";
+ }
+ if (!isset($_GET['date']) || $_GET['date']=="") {
+ $result = mysql_db_query("$db_name","select $sentitems from sentitems order by SendingDateTime");
+ } else {
+ $d = $_GET['date'];
+ $result = mysql_db_query("$db_name","select $sentitems from sentitems where SendingDateTime like '$d%' group by ID order by ID");
+ }
+ while($rekord = mysql_fetch_row($result)) {
+ if (!isset($_GET['date']) || $_GET['date']=="") {
+ if (isset($_GET['id']) && $_GET['id']!="" && $_GET['id'] == $rekord[11]) {
+ echo "<tr><td>$rekord[11] <a href=$dokument$arg"."db=$db_name&op=sentitems title='Click to hide details'>[<<]</a></td>\n";
+ } else {
+ echo "<tr><td>$rekord[11] <a href=$dokument$arg"."db=$db_name&op=sentitems&id=$rekord[11] title='Click to display details'>[>>]</a></td>\n";
+ }
+ } else {
+ if (isset($_GET['id']) && $_GET['id']!="" && $_GET['id'] == $rekord[11]) {
+ echo "<tr><td>$rekord[11] <a href=$dokument$arg"."db=$db_name&op=sentitems&date=$d title='Click to hide details'>[<<]</a></td>\n";
+ } else {
+ echo "<tr><td>$rekord[11] <a href=$dokument$arg"."db=$db_name&op=sentitems&date=$d&id=$rekord[11] title='Click to display details'>[>>]</a></td>\n";
+ }
+ }
+ echo "<td>$rekord[5]</td>\n";
+ echo "<td>$rekord[8]</td>\n";
+ $d2 = dispdatetime($rekord[0]);
+ echo "<td>$d2</td>\n";
+ echo "<td>$rekord[12]</td>\n";
+ if (!isset($_GET['date']) || $_GET['date']=="") {
+ echo "<td><a href=$dokument$arg"."db=$db_name&op=del&dzial=sentitems&id=$rekord[11] Title='Click to delete' OnClick=\"return Del($rekord[11]);\" >[X]</a></td></tr>";
+ } else {
+ echo "<td><a href=$dokument$arg"."db=$db_name&op=del&dzial=sentitems&date=$d&id=$rekord[11] Title='Click to delete' OnClick=\"return Del($rekord[11]);\" >[X]</a></td></tr>";
+ }
+ echo "</tr>\n";
+ $sentnum++;
+ if (isset($_GET['id']) && $_GET['id']!="" && $_GET['id'] == $rekord[11]) {
+ $op = $_GET['op'];
+ $id = $_GET['id'];
+ echo "</tr><tr><td colspan=6 bgcolor=white>";
+
+ for ($i = 1; $i <= 10; $i++) {
+ $result2 = mysql_db_query("$db_name","select $sentitems from sentitems where ID='$id' and SequencePosition='$i' limit 1");
+ if ($result2 == null) break;
+ while($rekord2 = mysql_fetch_row($result2)) {
+ if (!$i == 1) echo "<hr size=1 color=silver>";
+ echo "Validity: ";
+ dispvalidity($rekord2[17]);
+ echo "<br>\n";
+ dispsmsinfo($rekord2[9],$rekord2[7],$rekord2[4],$rekord2[10],$rekord2[6]);
+ }
+ mysql_free_result($result2);
+ }
+
+ echo "<table width=100%><tr bgcolor=silver>\n";
+ echo "<td>PART</td>\n";
+ echo "<td>ERROR CODE</td>\n";
+ echo "<td>STATUS</td>\n";
+ echo "<td>SENDING TIME</td>\n";
+ echo "<td>DELIVERY TIME</td></tr>\n";
+
+ $result2 = mysql_db_query("$db_name","select $sentitems from sentitems where ID='$id'");
+ while($rekord2 = mysql_fetch_row($result2)) {
+ echo "<tr><td>$rekord2[13]</td>\n";
+ echo "<td>$rekord2[15]</td>\n";
+ echo "<td>$rekord2[14]</td>";
+ $d2 = dispdatetime($rekord2[2]);
+ echo "<td>$d2</td>\n";
+ if ($rekord2[3] != "00000000000000") {
+ $d2 = dispdatetime($rekord2[3]);
+ echo "<td>$d2</td></tr>\n";
+ } else {
+ echo "<td>not set</td></tr>\n";
+ }
+ }
+ mysql_free_result($result2);
+
+ echo "</td></tr></table>\n";
+ }
+ }
+ mysql_free_result($result);
+ echo "</table>";
+ echo "<br>$sentnum SMS sequences sent";
+ }
+ if ($_GET['op']=="newsms") {
+ $result2 = mysql_db_query("$db_name","select now()+0;");
+ $rekord2 = mysql_fetch_row($result2);
+ $fulldt = $rekord2[0];
+ mysql_free_result($result2);
+
+ $rok="$fulldt[0]$fulldt[1]$fulldt[2]$fulldt[3]";
+ $miesiac="$fulldt[4]$fulldt[5]";
+ $dzionek="$fulldt[6]$fulldt[7]";
+ $godzina="$fulldt[8]$fulldt[9]";
+ $minuta="$fulldt[10]$fulldt[11]";
+ $sekunda="$fulldt[12]$fulldt[13]";
+
+ echo "<b>DATABASE $db_name, NEW OUTBOX SMS</b><p>\n";
+ echo "<form method=\"GET\" action=$dokument name=newsms>\n";
+ echo "<input type=hidden name=op value=addsms>\n";
+ echo "<input type=hidden name=serv value=$db_serv>\n";
+ echo "<input type=hidden name=user value=$db_user>\n";
+ echo "<input type=hidden name=pass value=$db_pass>\n";
+ echo "<input type=hidden name=db value=$db_name>\n";
+
+ echo "<table><tr><td>Recipient (eg. +48xxxxxxxxx)</td>";
+ echo "<td><input name=number maxlength=20></td></tr>\n";
+
+ echo "<tr><td>Sending date (year-month-day)</td>";
+ echo "<td><input name=year maxlength=4 value=\"$rok\" size=4>\n";
+ echo " - <input name=month maxlength=2 value=\"$miesiac\" size=2>\n";
+ echo " - <input name=day maxlength=2 value=\"$dzionek\" size=2></td></tr>\n";
+
+ echo "<tr><td>Sending time (hour:minute:second)</td><td><input name=hour maxlength=2 value=\"$godzina\" size=2>\n";
+ echo " : <input name=minute maxlength=2 value=\"$minuta\" size=2>\n";
+ echo " : <input name=second maxlength=2 value=\"$sekunda\" size=2></td></tr>\n";
+
+ echo "<tr><td>Validity</td><td><select name=validity>\n";
+ echo "<option value=-1 select>Default (taken from sending phone)\n";
+ echo "<option value=0>5 minutes\n";
+ echo "<option value=1>10 minutes\n";
+ echo "<option value=255>max. time (depends on SMSC)\n";
+ echo "</select></td></tr><tr>\n";
+
+ echo "<tr><td>Delivery Report</td><td><select name=report>\n";
+ echo "<option value=default select>Default (depends on sending daemon)\n";
+ echo "<option value=yes>yes\n";
+ echo "<option value=no>no\n";
+ echo "</select></td></tr><tr>\n";
+
+ echo "<tr><td>Sending phone</td><td><select name=phone>\n";
+ echo "<option value=\"\" select>any\n";
+// echo "<option value=bzzz>ala\n";
+ $result = mysql_db_query("$db_name","select $phones from phones where TimeOut>NOW() AND ID<>\"\"");
+ while($rekord = mysql_fetch_row($result)) {
+ echo "<option value=$rekord[0]>$rekord[5] / $rekord[0]\n";
+ }
+ echo "</select></td></tr><tr>\n";
+
+ echo "<td colspan=2><input type=checkbox name=class value=0>Send class 0 SMS</input><br>\n";
+
+ echo "<textarea name=tresc cols=70 rows=5 onChange=\"update();\" onFocus=\"update();\" onKeyUp=\"update();\" onKeyDown=\"update();\" onclick=\"update();\"></textarea></td></tr>\n";
+
+ echo "<tr><td colspan=2><input type=submit value=SEND OnClick=\"if (newsms.number.value=='') {alert('Sender number not filled'); return false;} else return true;\"></td></tr>\n";
+
+ echo "<tr><td><b>Chars left in current SMS</b></td><td><input name=left maxlength=3 value=\"160\" size=3 readonly></td></tr>\n";
+
+ echo "<tr><td><b>SMS number</b></td><td><input name=smsnum maxlength=3 value=\"1\" size=3 readonly> / $max_limit</td></tr>\n";
+
+ echo "</table></form>\n";
+ echo "<table width=620 cellspacing=1 border=0>";
+ echo "<tr><td> </td></tr></table>\n";
+ }
+ if ($_GET['op']=="daemons") {
+ echo "<b>DATABASE $db_name, DAEMONS</b><p>\n";
+
+ echo "<table width=620 cellspacing=1 border=1>";
+ echo "<tr bgcolor=gold><td>INFO</td>\n";
+ echo "<td></td></tr>\n";
+ $result = mysql_db_query("$db_name","select $daemons from daemons");
+ while($rekord = mysql_fetch_row($result)) {
+ echo "<td>$rekord[1]</td>\n";
+ $x = urlencode($rekord[0]);
+ echo "<td><a href=$dokument$arg"."db=$db_name&action=$x&op=daemons Title='Click to start' OnClick=\"return Del('ala');\" >[X]</a></td></tr>";
+ }
+ mysql_free_result($result);
+ echo "</table>";
+
+ echo "<table width=620 cellspacing=1 border=0>";
+ echo "<tr><td> </td></tr></table>\n";
+ }
+ if ($_GET['op']=="phones") {
+ $counter = 0;
+ echo "<b>DATABASE $db_name, PHONES</b><p>\n";
+ echo "<table width=620 cellspacing=1 border=1>";
+ echo "<tr bgcolor=gold><td>IMEI</td>\n";
+ echo "<td>ID</td>\n";
+ echo "<td>SEND SMS</td>\n";
+ echo "<td>RECEIVE SMS</td>\n";
+ echo "<td>LOGGED</td>\n";
+ echo "<td>CLIENT</td></tr>\n";
+ $result = mysql_db_query("$db_name","select $phones from phones where TimeOut>NOW()");
+ while($rekord = mysql_fetch_row($result)) {
+ $counter++;
+ echo "<td>$rekord[5]</td>\n";
+ echo "<td>$rekord[0]</td>\n";
+ echo "<td>$rekord[3]</td>\n";
+ echo "<td>$rekord[4]</td>\n";
+ $d2 = dispdatetime($rekord[1]);
+ echo "<td>$d2</td>\n";
+ echo "<td>$rekord[6]</td>\n";
+ }
+ mysql_free_result($result);
+ echo "</table>";
+ echo "<br>$counter phones<p>";
+ echo "<table width=620 cellspacing=1 border=0>";
+ echo "<tr><td> </td></tr></table>\n";
+ }
+} else {
+ echo "<table width=620 cellspacing=1 border=0>";
+ echo "<tr><td> </td></tr></table>\n";
+}
+
+echo "</td></tr>\n<tr>\n<td colspan=2 height=15 bgcolor=red align=center>\n";
+echo "<b><font color=white size=2 face=verdana>\n";
+echo "SMS Gateway example version 0.0.3 (c) 2004 by Michal Kruger & <a href=mailto:marcin@mwiacek.com>Marcin Wiacek</a>. Part of <a href=http://www.mwiacek.com>Gammu</a> project<br><hr width=100>\n";
+echo "This PC - IP ".$HTTP_SERVER_VARS['REMOTE_ADDR'].":".$HTTP_SERVER_VARS['REMOTE_PORT'];
+//." (".gethostbyaddr($HTTP_SERVER_VARS['REMOTE_ADDR']).
+echo ", ".$HTTP_SERVER_VARS['HTTP_USER_AGENT']."<br>\n";
+echo "WWW server - IP ".$HTTP_SERVER_VARS['HTTP_HOST'].":".$HTTP_SERVER_VARS['SERVER_PORT'];
+//echo " (".gethostbyaddr($HTTP_SERVER_VARS['HTTP_HOST'])."), \n";
+echo ", ".$HTTP_SERVER_VARS['SERVER_SOFTWARE'].", MySQL client ",mysql_get_client_info(),"<br>\n";
+echo "MySQL server - IP $db_serv, ",mysql_get_server_info(),"<br>\n";
+echo "</font></b>\n";
+echo "</td>\n</tr>\n</table>";
+?>
diff --git a/test-plans/alt_getopt.lua b/test-plans/alt_getopt.lua new file mode 100644 index 0000000..eb80ce4 --- /dev/null +++ b/test-plans/alt_getopt.lua @@ -0,0 +1,168 @@ +-- Copyright (c) 2009 Aleksey Cheusov <vle@gmx.net> +-- +-- 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. + +local type, pairs, ipairs, io, os = type, pairs, ipairs, io, os + +module ("alt_getopt") + +local function convert_short2long (opts) + local i = 1 + local len = #opts + local ret = {} + + for short_opt, accept_arg in opts:gmatch("(%w)(:?)") do + ret[short_opt]=#accept_arg + end + + return ret +end + +local function exit_with_error (msg, exit_status) + io.stderr:write (msg) + os.exit (exit_status) +end + +local function err_unknown_opt (opt) + exit_with_error ("Unknown option `-" .. + (#opt > 1 and "-" or "") .. opt .. "'\n", 1) +end + +local function canonize (options, opt) + if not options [opt] then + err_unknown_opt (opt) + end + + while type (options [opt]) == "string" do + opt = options [opt] + + if not options [opt] then + err_unknown_opt (opt) + end + end + + return opt +end + +function get_ordered_opts (arg, sh_opts, long_opts) + local i = 1 + local count = 1 + local opts = {} + local optarg = {} + + local options = convert_short2long (sh_opts) + for k,v in pairs (long_opts) do + options [k] = v + end + + while i <= #arg do + local a = arg [i] + + if a == "--" then + i = i + 1 + break + + elseif a == "-" then + break + + elseif a:sub (1, 2) == "--" then + local pos = a:find ("=", 1, true) + + if pos then + local opt = a:sub (3, pos-1) + + opt = canonize (options, opt) + + if options [opt] == 0 then + exit_with_error ("Bad usage of option `" .. a .. "'\n", 1) + end + + optarg [count] = a:sub (pos+1) + opts [count] = opt + else + local opt = a:sub (3) + + opt = canonize (options, opt) + + if options [opt] == 0 then + opts [count] = opt + else + if i == #arg then + exit_with_error ("Missed value for option `" + .. a .. "'\n", 1) + end + + optarg [count] = arg [i+1] + opts [count] = opt + i = i + 1 + end + end + count = count + 1 + + elseif a:sub (1, 1) == "-" then + local j + for j=2,a:len () do + local opt = canonize (options, a:sub (j, j)) + + if options [opt] == 0 then + opts [count] = opt + count = count + 1 + elseif a:len () == j then + if i == #arg then + exit_with_error ("Missed value for option `-" + .. opt .. "'\n", 1) + end + + optarg [count] = arg [i+1] + opts [count] = opt + i = i + 1 + count = count + 1 + break + else + optarg [count] = a:sub (j+1) + opts [count] = opt + count = count + 1 + break + end + end + else + break + end + + i = i + 1 + end + + return opts,i,optarg +end + +function get_opts (arg, sh_opts, long_opts) + local ret = {} + + local opts,optind,optarg = get_ordered_opts (arg, sh_opts, long_opts) + for i,v in ipairs (opts) do + if optarg [i] then + ret [v] = optarg [i] + else + ret [v] = 1 + end + end + + return ret,optind +end diff --git a/test-plans/biorhythm.rb b/test-plans/biorhythm.rb new file mode 100644 index 0000000..0f89bb9 --- /dev/null +++ b/test-plans/biorhythm.rb @@ -0,0 +1,160 @@ +#!/usr/local/bin/ruby +# +# biorhythm.rb - +# $Release Version: $ +# $Revision: 1.9 $ +# $Date: 2003/05/05 14:02:14 $ +# by Yasuo OHBA(STAFS Development Room) +# +# -- +# +# +# + +# probably based on: +# +# Newsgroups: comp.sources.misc,de.comp.sources.os9 +# From: fkk@stasys.sta.sub.org (Frank Kaefer) +# Subject: v41i126: br - Biorhythm v3.0, Part01/01 +# Message-ID: <1994Feb1.070616.15982@sparky.sterling.com> +# Sender: kent@sparky.sterling.com (Kent Landfield) +# Organization: Sterling Software +# Date: Tue, 1 Feb 1994 07:06:16 GMT +# +# Posting-number: Volume 41, Issue 126 +# Archive-name: br/part01 +# Environment: basic, dos, os9 + +include Math +require "date.rb" +require "parsearg.rb" +require "parsedate.rb" + +def usage() + print "Usage:\n" + print "biorhythm.rb [options]\n" + print " options...\n" + print " -D YYYYMMDD(birthday) : use default values.\n" + print " --sdate | --date YYYYMMDD : use system date; use specified date.\n" + print " --birthday YYYYMMDD : specifies your birthday.\n" + print " -v | -g : show values or graph.\n" + print " --days DAYS : graph range (only in effect for graphs).\n" + print " --help : help\n" +end +$USAGE = 'usage' + +def printHeader(y, m, d, p, w) + print "\n>>> Biorhythm <<<\n" + printf "The birthday %04d.%02d.%02d is a %s\n", y, m, d, w + printf "Age in days: [%d]\n\n", p +end + +def getPosition(z) + pi = Math::PI + z = Integer(z) + phys = (50.0 * (1.0 + sin((z / 23.0 - (z / 23)) * 360.0 * pi / 180.0))).to_i + emot = (50.0 * (1.0 + sin((z / 28.0 - (z / 28)) * 360.0 * pi / 180.0))).to_i + geist =(50.0 * (1.0 + sin((z / 33.0 - (z / 33)) * 360.0 * pi / 180.0))).to_i + return phys, emot, geist +end + +def parsedate(s) + ParseDate::parsedate(s).values_at(0, 1, 2) +end + +def name_of_week(date) + Date::DAYNAMES[date.wday] +end + +# +# main program +# +parseArgs(0, nil, "vg", "D:", "sdate", "date:", "birthday:", "days:") + +if $OPT_D + dd = Date.today + bd = Date.new(*parsedate($OPT_D)) + ausgabeart = "g" +else + if $OPT_birthday + bd = Date.new(*parsedate($OPT_birthday)) + else + STDERR.print("Birthday (YYYYMMDD) : ") + unless (si = STDIN.gets.chop).empty? + bd = Date.new(*parsedate(si)) + end + end + if !bd + STDERR.print "BAD Input Birthday!!\n" + exit() + end + + if $OPT_sdate + dd = Date.today + elsif $OPT_date + dd = Date.new(*parsedate($OPT_date)) + else + STDERR.print("Date [<RETURN> for Systemdate] (YYYYMMDD) : ") + unless (si = STDIN.gets.chop).empty? + dd = Date.new(*parsedate(si)) + end + end + dd ||= Date.today + + if $OPT_v + ausgabeart = "v" + elsif $OPT_g + ausgabeart = "g" + else + STDERR.print("Values for today or Graph (v/g) [default g] : ") + ausgabeart = STDIN.gets.chop + end +end +if ausgabeart == "v" + printHeader(bd.year, bd.month, bd.day, dd - bd, name_of_week(bd)) + print "\n" + + phys, emot, geist = getPosition(dd - bd) + printf "Biorhythm: %04d.%02d.%02d\n", dd.year, dd.month, dd.day + printf "Physical: %d%%\n", phys + printf "Emotional: %d%%\n", emot + printf "Mental: %d%%\n", geist + print "\n" +else + if $OPT_days + display_period = $OPT_days.to_i + elsif $OPT_D + display_period = 9 + else + STDERR.printf("Graph for how many days [default 10] : ") + display_period = STDIN.gets.chop + if display_period.empty? + display_period = 9 + else + display_period = display_period.to_i - 1 + end + end + + printHeader(bd.year, bd.month, bd.day, dd - bd, name_of_week(bd)) + print " P=physical, E=emotional, M=mental\n" + print " -------------------------+-------------------------\n" + print " Bad Condition | Good Condition\n" + print " -------------------------+-------------------------\n" + + (dd - bd).step(dd - bd + display_period) do |z| + phys, emot, geist = getPosition(z) + + printf "%04d.%02d.%02d : ", dd.year, dd.month, dd.day + p = (phys / 2.0 + 0.5).to_i + e = (emot / 2.0 + 0.5).to_i + g = (geist / 2.0 + 0.5).to_i + graph = "." * 51 + graph[25] = ?| + graph[p] = ?P + graph[e] = ?E + graph[g] = ?M + print graph, "\n" + dd = dd + 1 + end + print " -------------------------+-------------------------\n\n" +end diff --git a/test-plans/circ.tex b/test-plans/circ.tex new file mode 100644 index 0000000..48a177e --- /dev/null +++ b/test-plans/circ.tex @@ -0,0 +1,479 @@ +\documentclass[a4paper,twocolumn]{article} +\usepackage[german]{babel} +\usepackage[T1]{fontenc} +\usepackage[latin1]{inputenc} +\usepackage[showlabels,sections,floats,textmath,displaymath]{preview} +\newbox\chaos +\newdimen\tdim +\def\fframe{% +\tdim=\columnwidth +\advance\tdim by -2\fboxsep +\advance\tdim by -2\fboxrule +\setbox\chaos=\hbox\bgroup\begin{minipage}{\tdim}} +\def\endfframe{\end{minipage}\egroup\fbox{\box\chaos}} +\unitlength 1mm +\newcount\fives +\fives 14 +\newcount\ones +\ones\fives +\multiply \ones by 5 +\newsavebox{\raster} +\savebox{\raster}(\ones,\ones) +{\thicklines + \put(0,0){\line(0,1){\ones}} + \put(0,0){\line(1,0){\ones}} + \multiput(0,0)(5,0){\fives} + {\begin{picture}(0,0) + \put(5,0){\line(0,1){\ones}} + \thinlines\multiput(1,0)(1,0){4}{\line(0,1){\ones}} + \end{picture}} + \multiput(0,0)(0,5){\fives} + {\begin{picture}(0,0) + \put(0,5){\line(1,0){\ones}} + \thinlines\multiput(0,1)(0,1){4}{\line(1,0){\ones}} + \end{picture}} +} +\begin{document} +\title{Einfache Kurven auf Rastergrafiken} +\author{David Kastrup} +\maketitle + +\begin{abstract} +Es sollen hier einfache Methoden vorgestellt werden, um auf einer +Rastereinheit verschiedene Kurven darzustellen. Vorgestellt werden +Zeichenalgorithmen für Linien, Kreise und Hyperbeln. Die hier +hergeleiteten Gleichungen sind auch unter dem Namen {\tt DDA}s bekannt. +\end{abstract} + +\section{Einführung} +Bei den hier vorgestellten Algorithmen werden zunächst nur +Kurvenstücke betrachtet, die die folgenden Eigenschaften besitzen: +\begin{enumerate} +\item Sie lassen sich als Funktion $y = f(x)$ darstellen. +\item $y$ ist im betrachteten Bereich monoton, das heißt, entweder + durchgehend steigend oder durchgehend fallend. +\item Wenn $x$ sich um $1$ ändert, so ändert sich $y$ betragsmäßig + höchstens um $1$ + ($\left|\frac{\partial y}{\partial x}\right| \leq 1$). +\end{enumerate} + +\section{Die gerade Linie} +Wir betrachten hier zunächst nur die gerade Linie im ersten Oktanten, +die durch den Punkt $0 \choose 0$ geht. Alle anderen Linien lassen +sich durch Vertauschen von $x$ und~$y$ sowie Vorzeichenwechsel +erzeugen. Im ersten Oktanten gilt $x \geq y \geq 0$. Zum Zeichnen +einer Linie genügt es also, $x$ durchlaufen zu lassen und für $y$ die +dazugehörigen Werte zu berechnen und zu runden. + +Die Gleichung einer Geraden durch $\Delta x \choose \Delta y$ lautet: +\begin{equation} +\label{lgi} +y = \frac{\Delta y}{\Delta x}x +\end{equation} +% +Nun stellen wir $y$ als Summe eines ganzzahligen Wertes $e$ und eines +gebrochenen Wertes $f$ dar, für den gilt: $-0.5 \leq f < 0.5$. Somit +stellt dann $e$ den gewünschten, auf die nächste ganze Zahl gerundeten +$y$-Wert dar. Jetzt formen wir (\ref{lgi}) um: +\begin{eqnarray} +e + f &=& x \frac{\Delta y}{\Delta x}\nonumber\\ +e \Delta x + f \Delta x &=& x \Delta y\nonumber\\ +f \Delta x - \left\lceil\frac{\Delta x}2\right\rceil &=& +x \Delta y - e \Delta x - \left\lceil\frac{\Delta x}2\right\rceil \label{lgii} +\end{eqnarray} +% +Den linken Ausdruck in (\ref{lgii}) bezeichnen wir jetzt mit $d$. Für +positive gerade Werte von $\Delta x$ ist offensichtlich $d < 0$ eine +zu~$f < 0.5$ equivalente Bedingung. + +Für ungerade Werte von~$\Delta x$ ist $f < 0.5$ equivalent zu +$d + 0.5 < 0$. +Da $d$ stets eine ganze Zahl ist, ist dies wieder zu $d < 0$ +equivalent. + +% INTENTIONAL ERRORS! INTENTIONAL ERRORS! INTENTIONAL ERRORS! +% +% The following line should flag a PostScript error when previewing, +% but processing of other previews should continue. +% +Wird nun $\ifPreview\special{ps: junk}\fi f \geq 0.5$, wie sich durch +den Vergleich $d \stackrel{?}{<} 0$ feststellen läßt, so muß man +korrigieren, indem man $f$ um~1 erniedrigt und $e$ um~$1$ erhöht. +% +% The following line will make Ghostscript abort unexpectedly when +% previewing, but processing of other previews should continue. +% +$\ifPreview\special{ps: quit}\fi d$ muß dann auch entsprechend +angepaßt werden. + +Mit den angegebenen Formeln ergibt sich jetzt bei Berücksichtigung der +Einflüsse von $x$ und $e$ auf $d$ der in Tabelle~\ref{linalg} +angegebene Algorithmus. Eine optimierte C-function, die die +Oktantenaufteilung berücksichtigt, ist in Tabelle~\ref{linc} zu +finden. Einige hiermit gezeichnete Linien sind in +Abbildung~\ref{linpict} zu sehen. +\begin{table} + \caption{Linienzugalgorithmus} \label{linalg} + \begin{fframe} + \begin{enumerate} + \item Setze $x \gets 0$, $y \gets 0$, $d \gets + -\left\lceil\frac{\Delta x}2\right\rceil$ + \item Wiederhole bis $x = \Delta x$ + \begin{enumerate} + \item Zeichne Punkt an $x \choose y$ + \item Setze $x \gets x + 1$, $d \gets d + \Delta y$ + \item Falls $d \geq 0$ + \begin{enumerate} + \item Setze $d \gets d - \Delta x$ + \item Setze $y \gets y + 1$ + \end{enumerate} + \end{enumerate} + \end{enumerate} + \end{fframe} +\end{table} +\begin{table} +\caption{Linienziehen in C} \label{linc} +\begin{fframe} +\small +\begin{verbatim} +extern int x,y; +/* (x,y) ist Koordinate des nicht + * gezeichneten Startpunktes, zeigt + * nachher auf gezeichneten Endpunkt + */ +#define doline(dx,dy,advx,advy) { \ + d = -(((i = dx) + 1) >> 1); \ + while (i--) { \ + advx; \ + if ((d += dy) >= 0) { \ + d -= dx; advy; \ + } \ + dot(x,y); \ + } \ + return; \ +} /* Grundalgorithmus 1. Oktant */ +/* dx ist Distanz in unabh. Richtung, * + * dy in abh. Richtung, advx geht * + * in unabh. Richtung, advy in abh. */ + +#define docond(cond,advx,advy) { \ + if (cond) doline(dx,dy,advx,advy) \ + doline(dy,dx,advy,advx) \ +} /* Grundalgorithmus 1./2. Oktant */ +/* cond ist true falls |dx| > |dy| */ + +void +linedraw(int dx, int dy) +/* Von (x,y) nach (x+dx, y+dx). */ +{ + int i; + + if (dx >= 0) { + if (dy >= 0) + docond(dx > dy, ++x, ++y) + docond(dx > (dy = -dy), ++x, --y) + } + if (dy >= 0) + docond((dx = -dx) > dy,--x,++y) + docond((dx = -dx) > (dy = -dy), + --x, --y ) +} +\end{verbatim} +\end{fframe} +\end{table} +\begin{figure} + \begin{picture}(\ones,\ones) \put(0,0){\usebox{\raster}} + \newcount\x + \newcount\y + \newcount\d + \newcount\dx + \newcount\dy + \x 0 + \y 0 + \dx \ones + \dy \ones + \loop %{ + \d -\dx + \divide \d by 2 %} + \ifnum \dy > 0 %{ + {\loop %{ + \put(\x,\y){\circle*{1}}%} + \ifnum \x < \ones %{ + \advance \x by 1 + \advance \d by \dy %} + \ifnum \d > -1 %{ + \advance \y by 1 + \advance \d by -\dx %} + \fi %}} + \repeat} + \advance \x by 5 + \advance \dx by -5 + \advance \dy by -15 %} + \repeat + \end{picture} +\caption{Einige Linien}\label{linpict} +\end{figure} + +\section{Der Kreis} +Wir betrachten hier nur den Achtelkreis im zweiten Oktanten +($y \geq x \geq 0$). Hier gelten die oben angegebenen Beziehungen. +Alle anderen Achtelkreise lassen sich durch elementare Spiegelungen +erzeugen. + +Die Gleichung eines Kreises ist hier +\begin{equation} +y = ±\sqrt{r^2 - x^2} +\end{equation} + +Der Wert $y$ läßt sich darstellen als Summe einer ganzen Zahl $e$ und +einem Wert $f$ mit $-0.5 \leq f < 0.5$. Der Wertebereich von $f$ ist +so gewählt worden, damit $e$ einen auf ganze Zahlen gerundeten Wert +für $y$ darstellt. + +Nun gilt: +\begin{eqnarray} +e + f&=&\sqrt{r^2 - x^2}\nonumber\\ +\label{ggg}e^2 + 2ef + f^2&=&r^2 - x^2 +\end{eqnarray} +% +Die Gleichung (\ref{ggg}) hat für $x+1$ folgende Form: +\begin{eqnarray} +\label{hhh}e'^2 + 2e'f' + f'^2&=&r^2 - x^2 - 2x -1 +\end{eqnarray} +% +Zieht man die Gleichung (\ref{ggg}) von (\ref{hhh}) ab, so ergibt sich +nach Umsortieren: +\begin{eqnarray*} + e' = e:\\ + 2e'f' + f'^2&=&2ef+f^2-2x-1\\ + e' = e-1:\\ + 2e'f' + f'^2&=&2ef+f^2+2e-2x-2 +\end{eqnarray*} +% +Jetzt wird $2ef + f^2$ mit $m$ getauft. Also: +\begin{eqnarray*} + e' = e:\\ + m'&=&m -2x-1\\ + e' = e-1:\\ + m'&=&m +2e-1 -2x-1 +\end{eqnarray*} +Wie groß ist jetzt $m$? Für $x=0$ ist es sicher $0$. Solange $e$ +konstant bleibt, schrumpft $f$ stetig. Fällt $f$ unter $-0.5$, so +fällt $m$ (unter Vernachlässigung von $f^2$) unter $-e$. Dies wird +jetzt als Kriterium für einen Unterlauf von $f$ verwendet. Tritt +dieser auf, so muß $f$ um $1$ erhöht und $e$ um $1$ erniedrigt werden. + +Um die Abfragebedingung zu vereinfachen, setzt man jetzt $q$ = $m+e$. +Der resultierende Algorithmus ist in Tabelle \ref{alg}, ein +optimiertes C-Programm ist in Tabelle \ref{prog} zu finden. +\begin{table} + \caption{Kreiszeichenalgorithmus}\label{alg} + \begin{fframe} + \begin{enumerate} + \item Setze $x\gets 0$, $y\gets r$, $q\gets r$ + \item Wiederhole bis $x>y$: + \begin{enumerate} + \item Setze einen Punkt an $x \choose y$. + \item Setze $q\gets q-2x-1$ + \item Falls $q<0$ + \begin{enumerate} + \item Setze $q\gets q + 2y-2$ + \item Setze $y\gets y-1$ + \end{enumerate} + \item Setze $x\gets x+1$ + \end{enumerate} + \end{enumerate} + \end{fframe} +\end{table} +\begin{table} + \caption{Kreiszeichenprogramm}\label{prog} + \begin{fframe} + \small +\begin{verbatim} +void +fourfold(int x0, int y0, int x, int y) +/* Zeichne in Oktant 1,3,5,7 */ +/* Wird benutzt, um Anfangs- und End- * + * Punkte nicht zweimal zu zeichnen */ +{ + dot(x0+x,y0+y); + dot(x0-y,y0+x); + dot(x0-x,y0-y); + dot(x0+y,y0-x); +} + +void +eightfold(int x0, int y0, int x, int y) +/* Zeichne in allen Quadranten */ +{ + fourfold(x0,y0,x,y); /* 1357 */ + fourfold(x0,y0,x,-y); /* 8642 */ +} + +void +circle(int x0, int y0, int r) +{ + fourfold(x0,y0,0,r); + /* Die ersten vier Punkte */ + for (x=0, y=q=r;; ) { + if ((q -= 2* x++ + 1) < 0) + q += 2* --y; + if (x >= y) + break; + eightfold(x0,y0,x,y); + } + if (x==y) + fourfold(x0,y0,x,y); + /* Eventuell die letzten vier */ +} +\end{verbatim} + \end{fframe} +\end{table} +\begin{figure} + \begin{picture}(\ones,\ones) + \put(0,0){\usebox{\raster}} + \newcount\x + \newcount\y + \newcount\q + \loop + {\x 0 + \y \ones + \q \ones + \loop + \put(\x,\y){\circle*{1}} + \put(\y,\x){\circle*{1}} + \advance \q by -\x + \advance \x by 1 + \advance \q by -\x + \ifnum \x < \y + \ifnum \q < 0 + \advance \y by -1 + \advance \q by \y + \advance \q by \y + \fi + \repeat} + \advance \ones by -10 + \ifnum \ones > 0 + \repeat + \end{picture} + \caption{Viertelkreise}\label{zeich} +\end{figure} + +\section{Einfache Hyperbeln} +Als letztes Beispiel betrachten wir hier Hyperbeln, die der Formel +$y = r^2\!/x$ genügen, und zwar im Bereich~$x \geq r$. + +Mit dem Ansatz $y = e + f$ ergibt sich: +\begin{eqnarray} + e+f &=& r^2\!/x\nonumber\\ + ex + fx &=& r^2\nonumber\\ + fx &=& r^2 - ex\label{phyp} +\end{eqnarray} +\pagebreak[2] +Für $x' = x+1$ hat nun (\ref{phyp}) die Form +\begin{eqnarray*} + e' = e:\\ + f'x' &=& r^2 - ex - e\\ + e' = e - 1:\\ + f'x' &=& r^2 - ex - e + x + 1 +\end{eqnarray*} +Setzt man jetzt $d = (2f + 1)x$, so ist $f < -0.5$ mit~$d < 0$ +equivalent. Erreicht man diesen Fall unter Verwendung der Annahme +$e' = e$, +dann muß in bekannter Weise $f$ um~$1$ erhöht und $e$ um~$1$ +vermindert werden. + +\pagebreak +Für $d'$ ergeben sich dann die folgenden Werte: +\begin{eqnarray*} + e' = e:\\ + d' &=& d - 2e + 1\\ + e' = e - 1:\\ + d' &=& d - 2e + 2x + 2 + 1 +\end{eqnarray*} +Daraus ergibt sich der in Tabelle~\ref{halg} angegebene +Hyperbelalgorithmus für den ersten Oktanten. +\begin{table} + \caption{Hyperbelalgorithmus}\label{halg} + \begin{fframe} + \begin{enumerate} + \item Setze $d \gets r$, $x \gets r$, $y \gets r$ + \item Wiederhole bis zufrieden + \begin{enumerate} + \item Setze Punkt an $x \choose y$ + \item Setze $x \gets x + 1$ + \item Setze $d \gets d - 2y + 1$ + \item Falls $d < 0$ + \begin{enumerate} + \item Setze $d \gets d + 2x$ + \item Setze $y \gets y - 1$ + \end{enumerate} + \end{enumerate} + \end{enumerate} + \end{fframe} +\end{table} +\begin{table} + \caption{Hyperbeln in C} + \begin{fframe} + \small +\begin{verbatim} +void +four(int x0, int y0, int x, int y) +/* Hyperbeln sind nur in 4 Oktanten */ +{ + dot(x0+x,y0+y); + dot(x0+y,y0+x); + dot(x0-x,y0-y); + dot(x0-y,y0-x); +} + +void +hyperb(int x0, int y0, int r, int dx) +{ + int d, x, y; + + for (x = y = d = r; dx--;) { + four(x0,y0,x,y); + ++x; + if ((d -= 2*y + 1) < 0) { + d += 2*x; + --y; + } + } +} +\end{verbatim} + \end{fframe} +\end{table} +\begin{figure} + \begin{picture}(\ones,\ones) + \put(0,0){\usebox{\raster}} + \newcount\x + \newcount\y + \newcount\q + \newcount\r + \r\ones + \loop + \advance \r by -10 + \ifnum \r > 0 + {\x \r + \y \r + \q \r + \loop + \put(\x,\y){\circle*{1}} + \put(\y,\x){\circle*{1}} + \ifnum \x < \ones + \advance \x by 1 + \advance \q by -\y + \advance \q by -\y + \advance \q by 1 + \ifnum \q < 0 + \advance \q by \x + \advance \q by \x + \advance \y by -1 + \fi + \repeat} + \repeat + \end{picture} + \caption{Hyperbeln}\label{hzeich} +\end{figure} +\end{document} diff --git a/test-plans/cldoc-test.lisp b/test-plans/cldoc-test.lisp new file mode 100644 index 0000000..5498e28 --- /dev/null +++ b/test-plans/cldoc-test.lisp @@ -0,0 +1,3 @@ +;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; -*- + +(defun foo (x) (* x 3)) diff --git a/test-plans/cups_de.po b/test-plans/cups_de.po new file mode 100644 index 0000000..0b92379 --- /dev/null +++ b/test-plans/cups_de.po @@ -0,0 +1,3002 @@ +# +# "$Id$" +# +# Message catalog template for the Common UNIX Printing System (CUPS). +# +# Copyright 2005-2006 by Easy Software Products. +# +# These coded instructions, statements, and computer programs are the +# property of Easy Software Products and are protected by Federal +# copyright law. Distribution and use rights are outlined in the file +# "LICENSE.txt" which should have been included with this file. If this +# file is missing or damaged please contact Easy Software Products +# at: +# +# Attn: CUPS Licensing Information +# Easy Software Products +# 44141 Airport View Drive, Suite 204 +# Hollywood, Maryland 20636 USA +# +# Voice: (301) 373-9600 +# EMail: cups-info@cups.org +# WWW: http://www.cups.org +# +msgid "" +msgstr "" +"Project-Id-Version: CUPS 1.2\n" +"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n" +"POT-Creation-Date: 2007-01-23 09:19-0500\n" +"PO-Revision-Date: 2006-07-17 19:55+0200\n" +"Last-Translator: Bernd Krumböck <b.krumboeck@rewe-group.at>\n" +"Language-Team: Deutsch\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Options Installed" +msgstr "Installierte Optionen" + +msgid "Class" +msgstr "Klasse" + +msgid "Printer" +msgstr "Drucker" + +msgid "Extra" +msgstr "Extra" + +msgid "General" +msgstr "Allgemein" + +msgid "Media Size" +msgstr "Mediengröße" + +msgid "Media Type" +msgstr "Medientyp" + +msgid "Media Source" +msgstr "Medienquelle" + +msgid "Output Mode" +msgstr "Ausgabemodus" + +msgid "Resolution" +msgstr "Auflösung" + +msgid "Variable" +msgstr "Variable" + +msgid "Yes" +msgstr "Ja" + +msgid "No" +msgstr "Nein" + +msgid "Auto" +msgstr "Automatisch" + +msgid "" +"Enter your username and password or the root username and password to access " +"this page." +msgstr "" +"FĂĽr Zugang Benutzername und Passwort (oder Benutzername und Passwort fĂĽr " +"root) eingeben." + +msgid "You must use a https: URL to access this page." +msgstr "Eine https:-URL ist fĂĽr den Zugriff erforderlich." + +#, c-format +msgid "Bad request version number %d.%d!" +msgstr "UngĂĽltige Versionsnummer %d.%d fĂĽr Abfrage!" + +msgid "No attributes in request!" +msgstr "Abfrage enthält keine Eigenschaften!" + +#, c-format +msgid "Attribute groups are out of order (%x < %x)!" +msgstr "Eigenschaftsgruppen haben falsche Reihenfolge (%x<%x)!" + +msgid "Missing required attributes!" +msgstr "Benötigte Eigenschaften fehlen!" + +#, c-format +msgid "%s not supported!" +msgstr "%s nicht unterstĂĽtzt!" + +msgid "The printer or class was not found." +msgstr "Drucker oder Klasse nicht gefunden." + +msgid "" +"The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"." +msgstr "" +"Die printer-uri muss in der Form \"ipp://HOSTNAME/classes/KLASSENNAME\" sein." + +#, c-format +msgid "The printer-uri \"%s\" contains invalid characters." +msgstr "Die printer-uri \"%s\" enthält ungĂĽltige Zeichen." + +#, c-format +msgid "A printer named \"%s\" already exists!" +msgstr "Ein Drucker mit dem Namen \"%s\" existiert bereits!" + +#, c-format +msgid "Attempt to set %s printer-state to bad value %d!" +msgstr "Versuch den %s printer-state auf ungĂĽltigen Wert %d zu setzen!" + +#, c-format +msgid "add_class: Unknown printer-op-policy \"%s\"." +msgstr "add_class: Unbekannte printer-op-policy \"%s\"." + +#, c-format +msgid "add_class: Unknown printer-error-policy \"%s\"." +msgstr "add_class: Unbekannte printer-error-policy \"%s\"." + +msgid "Unable to allocate memory for file types!" +msgstr "Speicherreservierung fĂĽr Dateitypen fehlgeschlagen!" + +#, c-format +msgid "Character set \"%s\" not supported!" +msgstr "Zeichensatz \"%s\" nicht unterstĂĽtzt!" + +#, c-format +msgid "Language \"%s\" not supported!" +msgstr "Sprache \"%s\" nicht unterstĂĽtzt!" + +#, c-format +msgid "The notify-user-data value is too large (%d > 63 octets)!" +msgstr "Der Wert von notify-user-data ist zu groĂź (%d > 63 Oktette)!" + +msgid "" +"The notify-lease-duration attribute cannot be used with job subscriptions." +msgstr "" +"notify-lease-duration kann nicht bei Auftragssubskriptionen verwendet werden." + +msgid "" +"The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"." +msgstr "" +"Die printer-uri muss in der Form \"ipp://HOSTNAME/printers/DRUCKERNAME\" " +"sein." + +#, c-format +msgid "A class named \"%s\" already exists!" +msgstr "Eine Klasse namens \"%s\" existiert bereits!" + +#, c-format +msgid "" +"File device URIs have been disabled! To enable, see the FileDevice directive " +"in \"%s/cupsd.conf\"." +msgstr "" +"Ausgabe auf Dateien gesperrt! Gegebenenfalls FileDevice-Einstellung in \"%s/" +"cupsd.conf\" ändern." + +#, c-format +msgid "Bad device-uri \"%s\"!" +msgstr "Falsche device-uri \"%s\"!" + +#, c-format +msgid "Bad port-monitor \"%s\"!" +msgstr "Falscher port-monitor \"%s\"!" + +#, c-format +msgid "Bad printer-state value %d!" +msgstr "Falscher printer-state Wert %d!" + +#, c-format +msgid "Unknown printer-op-policy \"%s\"." +msgstr "Unbekannte printer-op-policy \"%s\"." + +#, c-format +msgid "Unknown printer-error-policy \"%s\"." +msgstr "Unbekannte printer-error-policy \"%s\"." + +#, c-format +msgid "Unable to copy interface script - %s!" +msgstr "Interface Skript konnte nicht kopiert werden - %s!" + +#, c-format +msgid "Unable to copy PPD file - %s!" +msgstr "PPD Datei konnte nicht kopiert werden - %s!" + +msgid "Unable to copy PPD file!" +msgstr "Kann PPD Datei nicht kopieren!" + +msgid "Got a printer-uri attribute but no job-id!" +msgstr "Eigenschaft der printer-uri ohne job-id erhalten!" + +#, c-format +msgid "Bad job-uri attribute \"%s\"!" +msgstr "Falsche job-uri Eigenschaft \"%s\"!" + +#, c-format +msgid "Job #%d doesn't exist!" +msgstr "Auftrag #%d existiert nicht!" + +#, c-format +msgid "Job #%d is not held for authentication!" +msgstr "Auftrag %d nicht fĂĽr Authentifizierung angehalten!" + +#, c-format +msgid "You are not authorized to authenticate job #%d owned by \"%s\"!" +msgstr "Nicht berechtigt den Auftrag #%d von \"%s\" zu authentifizieren!" + +msgid "The printer-uri attribute is required!" +msgstr "Die Eigenschaft printer-uri wird benötigt!" + +msgid "Missing requesting-user-name attribute!" +msgstr "Vermisse die Eigenschaft requesting-user-name!" + +#, c-format +msgid "The printer-uri \"%s\" is not valid." +msgstr "Die printer-uri \"%s\" ist nicht gĂĽltig." + +#, c-format +msgid "No active jobs on %s!" +msgstr "Keine aktiven Aufträge auf %s!" + +#, c-format +msgid "You are not authorized to delete job #%d owned by \"%s\"!" +msgstr "Sie sind nicht berechtigt den Auftrag #%d, von \"%s\" zu löschen!" + +#, c-format +msgid "Job #%d is already %s - can't cancel." +msgstr "Auftrag #%d ist bereits %s - Abbruch unmöglich." + +msgid "The printer or class is not shared!" +msgstr "Drucker oder Klasse ist nicht verteilt!" + +#, c-format +msgid "Destination \"%s\" is not accepting jobs." +msgstr "Ziel \"%s\" akzeptiert keine Aufträge." + +#, c-format +msgid "Bad copies value %d." +msgstr "Falscher Wert fĂĽr Kopien: %d." + +#, c-format +msgid "Bad page-ranges values %d-%d." +msgstr "Falscher page-ranges Wert %d-%d." + +msgid "Too many active jobs." +msgstr "Zu viele aktive Aufträge." + +msgid "Quota limit reached." +msgstr "Kontigentsgrenze erreicht." + +#, c-format +msgid "Unable to add job for destination \"%s\"!" +msgstr "Kann Auftrag nicht zu Ziel \"%s\" hinzufĂĽgen!" + +msgid "No subscription attributes in request!" +msgstr "Keine Subskriptionseigenschaften in der Abfrage!" + +msgid "notify-events not specified!" +msgstr "notify-events nicht festgelegt!" + +#, c-format +msgid "Job %d not found!" +msgstr "Auftrag %d nicht gefunden!" + +msgid "No default printer" +msgstr "Kein Standarddrucker" + +msgid "cups-deviced failed to execute." +msgstr "cups-deviced konnte nicht ausgefĂĽhrt werden." + +msgid "cups-driverd failed to execute." +msgstr "cups-driverd konnte nicht ausgefĂĽhrt werden." + +msgid "No destinations added." +msgstr "Keine Ziele hinzugefĂĽgt." + +#, c-format +msgid "notify-subscription-id %d no good!" +msgstr "notify-subscription-id %d unbrauchbar!" + +#, c-format +msgid "Job #%s does not exist!" +msgstr "Auftrag #%s existiert nicht!" + +#, c-format +msgid "Job #%d does not exist!" +msgstr "Auftrag #%d existiert nicht!" + +msgid "No subscriptions found." +msgstr "Keine Subskription gefunden." + +#, c-format +msgid "Not authorized to hold job #%d owned by \"%s\"!" +msgstr "Nicht berechtigt den Auftrag #%d von \"%s\" aufzuhalten!" + +#, c-format +msgid "Job #%d is finished and cannot be altered!" +msgstr "Auftrag #%d ist bereits fertig und nicht änderbar!" + +#, c-format +msgid "You are not authorized to move job #%d owned by \"%s\"!" +msgstr "Nicht berechtigt den Auftrag #%d von \"%s\" zu verschieben!" + +msgid "job-printer-uri attribute missing!" +msgstr "Eigenschaft job-printer-uri fehlt." + +#, c-format +msgid "Unsupported compression \"%s\"!" +msgstr "Nicht unterstĂĽtzte Kompression \"%s\"!" + +msgid "No file!?!" +msgstr "Keine Datei!?!" + +#, c-format +msgid "Could not scan type \"%s\"!" +msgstr "Konnte Typ nicht scannen \"%s\"!" + +#, c-format +msgid "Unsupported format '%s/%s'!" +msgstr "Nicht unterstĂĽtztes Format '%s/%s'!" + +msgid "Printer not shared!" +msgstr "Drucker nicht verteilt!" + +#, c-format +msgid "Too many jobs - %d jobs, max jobs is %d." +msgstr "Zu viele Aufträge - %d; das Maximum ist %d." + +#, c-format +msgid "Job #%d is not held!" +msgstr "Auftrag #%d wurde nicht aufgehalten!" + +#, c-format +msgid "You are not authorized to release job id %d owned by \"%s\"!" +msgstr "Nicht berechtigt den Auftrag mit der ID %d von \"%s\" freizugeben!" + +#, c-format +msgid "Job #%d is not complete!" +msgstr "Auftrag #%d ist nicht komplett!" + +#, c-format +msgid "Job #%d cannot be restarted - no files!" +msgstr "Auftrag #%d kann nicht neu gestartet werden - keine Dateien!" + +#, c-format +msgid "You are not authorized to restart job id %d owned by \"%s\"!" +msgstr "" +"Sie sind nicht berechtigt den Auftrag mit der ID %d von \"%s\" neu zu " +"starten!" + +#, c-format +msgid "You are not authorized to send document for job #%d owned by \"%s\"!" +msgstr "" +"Sie sind nicht berechtigt ein Dokument fĂĽr den Auftrag #%d von \"%s\" zu " +"senden!" + +#, c-format +msgid "Bad document-format \"%s\"!" +msgstr "document-format \"%s\" ist falsch!" + +#, c-format +msgid "You are not authorized to alter job id %d owned by \"%s\"!" +msgstr "" +"Sie sind nicht berechtigt den Aufrag mit der ID %d von \"%s\" abzuändern." + +#, c-format +msgid "%s cannot be changed." +msgstr "%s kann nicht geändert werden." + +msgid "Bad job-priority value!" +msgstr "Falscher job-priority Wert!" + +msgid "Job is completed and cannot be changed." +msgstr "Auftrag abgeschlossen, kann nicht geändert werden." + +msgid "Bad job-state value!" +msgstr "Falscher job-state Wert!" + +msgid "Job state cannot be changed." +msgstr "Auftragsstatus kann nicht geändert werden." + +#, c-format +msgid "Unsupported compression attribute %s!" +msgstr "Nicht unterstĂĽtzte Kompressionseigenschaft %s!" + +#, c-format +msgid "Unsupported format \"%s\"!" +msgstr "Nicht unterstĂĽtztes Format \"%s\"!" + +#, c-format +msgid "%s is not implemented by the CUPS version of lpc.\n" +msgstr "%s ist in der CUPS Version von lpc nicht implementiert.\n" + +msgid "" +"Commands may be abbreviated. Commands are:\n" +"\n" +"exit help quit status ?\n" +msgstr "" +"Befehle sind abkĂĽrzbar. Befehle sind:\n" +"\n" +"exit help quit status ?\n" + +msgid "help\t\tget help on commands\n" +msgstr "help\t\tum Hilfe fĂĽr die Befehle zu bekommen\n" + +msgid "status\t\tshow status of daemon and queue\n" +msgstr "status\t\tzeigt den Status von Diensten und Warteschlangen\n" + +msgid "?Invalid help command unknown\n" +msgstr "?UngĂĽltiger Hilfebefehl nicht bekannt\n" + +#, c-format +msgid "\tprinter is on device '%s' speed -1\n" +msgstr "\tDrucker verbunden ĂĽber '%s' Geschwindigkeit -1\n" + +msgid "\tqueuing is enabled\n" +msgstr "\tWarteschlange ist freigegeben\n" + +msgid "\tqueuing is disabled\n" +msgstr "\tWarteschlange ist gesperrt\n" + +msgid "\tprinting is enabled\n" +msgstr "\tDrucken ist freigegeben\n" + +msgid "\tprinting is disabled\n" +msgstr "\tDrucken ist gesperrt\n" + +msgid "\tno entries\n" +msgstr "\tKeine Einträge\n" + +#, c-format +msgid "\t%d entries\n" +msgstr "\t%d Einträge\n" + +msgid "\tdaemon present\n" +msgstr "\tDienst läuft\n" + +msgid "lpq: Unable to contact server!\n" +msgstr "lpq: Kann Server nicht kontaktieren!\n" + +#, c-format +msgid "%s: Sorry, no encryption support compiled in!\n" +msgstr "%s: Bedaure, VerschlĂĽsselungen nicht mitkompiliert!\n" + +#, c-format +msgid "lpq: Unknown destination \"%s/%s\"!\n" +msgstr "lpq: Unbekanntes Ziel \"%s/%s\"!\n" + +#, c-format +msgid "lpq: Unknown destination \"%s\"!\n" +msgstr "lpq: Unbekanntes Ziel \"%s\"!\n" + +#, c-format +msgid "" +"lp: error - %s environment variable names non-existent destination \"%s\"!\n" +msgstr "" +"lp: Fehler - Umgebungsvariable %s enhält nicht vorhandenes Ziel \"%s\"!\n" + +msgid "lpq: error - no default destination available.\n" +msgstr "lpq: Fehler - kein Standardziel verfĂĽgbar.\n" + +#, c-format +msgid "lpq: get-jobs failed: %s\n" +msgstr "lpq: get-jobs fehlgeschlagen: %s\n" + +msgid "" +"Rank Owner Pri Job Files Total Size\n" +msgstr "" +"Rang Besitzer Pri Auftrag Dateien Gesamtgröße\n" + +msgid "Rank Owner Job File(s) Total Size\n" +msgstr "Rang Besitz Auftrag Datei(en) Gesamtgröße\n" + +#, c-format +msgid "%s: %-33.33s [job %d localhost]\n" +msgstr "%s: %-33.33s [Auftrag %d localhost]\n" + +#, c-format +msgid " %-39.39s %.0f bytes\n" +msgstr " %-39.39s %.0f Byte\n" + +#, c-format +msgid "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes\n" +msgstr "%-6s %-10.10s %-4d %-10d %-27.27s %.0f Byte\n" + +#, c-format +msgid "%-7s %-7.7s %-7d %-31.31s %.0f bytes\n" +msgstr "%-7s %-7.7s %-7d %-31.31s %.0f Byte\n" + +msgid "no entries\n" +msgstr "keine Einträge\n" + +#, c-format +msgid "lpq: get-printer-attributes failed: %s\n" +msgstr "lpq: get-printer-attributes fehlgeschlagen: %s\n" + +#, c-format +msgid "%s is ready\n" +msgstr "%s ist bereit\n" + +#, c-format +msgid "%s is ready and printing\n" +msgstr "%s ist bereit und druckt\n" + +#, c-format +msgid "%s is not ready\n" +msgstr "%s ist nicht bereit\n" + +msgid "Usage: lpq [-P dest] [-l] [+interval]\n" +msgstr "Benutzung: lpq [-P Ziel] [-l] [+Intervall]\n" + +#, c-format +msgid "lpr: error - expected value after -%c option!\n" +msgstr "lpr: Fehler - Es wird ein Wert hinter dem Parameter -%c erwartet!\n" + +#, c-format +msgid "" +"lpr: warning - '%c' format modifier not supported - output may not be " +"correct!\n" +msgstr "" +"lpr: Warnung - Formatangabe '%c' nicht unterstĂĽtzt - Ausgabe evtl. " +"fehlerhaft!\n" + +msgid "lpr: error - expected option=value after -o option!\n" +msgstr "lpr: Fehler - Erwarte Parameter=Wert hinter dem Parameter -o!\n" + +msgid "lpr: warning - email notification is not currently supported!\n" +msgstr "" +"lpr: Warnung - Email Benachrichtigung wird zurzeit nicht unterstĂĽtzt!\n" + +msgid "lpr: error - expected destination after -P option!\n" +msgstr "lpr: Fehler - Erwarte Ziel hinter dem Parameter -P!\n" + +msgid "lpr: error - expected copy count after -# option!\n" +msgstr "lpr: Fehler - Erwarte Kopienanzahl hinter dem Parameter -#!\n" + +#, c-format +msgid "lpr: error - expected name after -%c option!\n" +msgstr "lpr: Fehler - Erwarte Name hinter dem Parameter -%c!\n" + +msgid "lpr: error - expected username after -U option!\n" +msgstr "lpr: Fehler - Erwarte Benutzername hinter dem Parameter -U!\n" + +#, c-format +msgid "lpr: error - unknown option '%c'!\n" +msgstr "lpr: Fehler - Unbekannter Parameter '%c'!\n" + +#, c-format +msgid "lpr: error - unable to access \"%s\" - %s\n" +msgstr "lpr: Fehler - Zugriff nicht möglich auf \"%s\" - %s\n" + +#, c-format +msgid "lpr: error - too many files - \"%s\"\n" +msgstr "lpr: Fehler - Zu viele Dateien \"%s\"\n" + +#, c-format +msgid "" +"lpr: error - %s environment variable names non-existent destination \"%s\"!\n" +msgstr "" +"lpr: Fehler - Die Umgebungsvariable %s beinhaltet das nicht vorhandene Ziel " +"\"%s\"!\n" + +msgid "lpr: error - no default destination available.\n" +msgstr "lpr: Fehler - Kein Standardziel verfĂĽgbar.\n" + +msgid "lpr: error - scheduler not responding!\n" +msgstr "lpr: Fehler - Scheduler antwortet nicht!\n" + +#, c-format +msgid "lpr: error - unable to create temporary file \"%s\" - %s\n" +msgstr "lpr: Fehler - Kann temporäre Datei \"%s\" nicht erstellen - %s\n" + +#, c-format +msgid "lpr: error - unable to write to temporary file \"%s\" - %s\n" +msgstr "" +"lpr: Fehler - Kann nicht in die temporäre Datei \"%s\" schreiben - %s\n" + +msgid "lpr: error - stdin is empty, so no job has been sent.\n" +msgstr "lpr: Fehler - stdin ist leer, kein Auftrag gesendet.\n" + +#, c-format +msgid "lpr: error - unable to print file: %s\n" +msgstr "lpr: Fehler - Kann Datei nicht drucken: %s\n" + +msgid "lprm: Unable to contact server!\n" +msgstr "lprm: Server nicht erreichbar!\n" + +#, c-format +msgid "lprm: Unknown destination \"%s\"!\n" +msgstr "lprm: Unbekanntes Ziel \"%s\"\n" + +#, c-format +msgid "lprm: Unknown option '%c'!\n" +msgstr "lprm: Unbekannter Parameter '%c'!\n" + +msgid "lprm: Job or printer not found!\n" +msgstr "lprm: Auftrag oder Drucker nicht gefunden!\n" + +msgid "lprm: Not authorized to lprm job(s)!\n" +msgstr "lprm: Keine Berechtigung um Aufträge zu löschen!\n" + +#, c-format +msgid "lprm: You don't own job ID %d!\n" +msgstr "lprm: Ihnen gehört die Auftrags ID %d nicht!\n" + +msgid "lprm: Unable to lprm job(s)!\n" +msgstr "lprm: Kann keine Aufträge löschen!\n" + +msgid "lprm: Unable to cancel job(s)!\n" +msgstr "lprm: Kann keine Aufträge abbrechen!\n" + +#, c-format +msgid "%s: Don't know what to do!\n" +msgstr "%s: Keine Ahnung was zu tun ist!\n" + +#, c-format +msgid "%s: Expected server name after -h!\n" +msgstr "%s: Servername wird hinter -h erwartet!\n" + +#, c-format +msgid "%s: Expected reason text after -r!\n" +msgstr "%s: BegrĂĽndungstext wird hinter -r erwartet!\n" + +#, c-format +msgid "%s: Unknown option '%c'!\n" +msgstr "%s: Unbekannter Parameter '%c'!\n" + +#, c-format +msgid "%s: Unable to connect to server: %s\n" +msgstr "%s: Server nicht erreichbar: %s!\n" + +#, c-format +msgid "%s: Operation failed: %s\n" +msgstr "%s: Vorgang fehlgeschlagen: %s\n" + +msgid "cancel: Error - expected hostname after '-h' option!\n" +msgstr "cancel: Fehler - Erwarte Hostname hinter dem Parameter -h!\n" + +msgid "cancel: Error - expected username after '-u' option!\n" +msgstr "cancel: Fehler - Erwarte Benutzername hinter dem Parameter -u!\n" + +#, c-format +msgid "cancel: Unknown option '%c'!\n" +msgstr "cancel: Unbekannter Parameter '%c'!\n" + +#, c-format +msgid "cancel: Unknown destination \"%s\"!\n" +msgstr "cancel: Unbekanntes Ziel \"%s\"!\n" + +msgid "cancel: Unable to contact server!\n" +msgstr "cancel: Server nicht erreichbar!\n" + +#, c-format +msgid "cancel: %s failed: %s\n" +msgstr "cancel: %s fehlgeschlagen: %s\n" + +#, c-format +msgid "cupsaddsmb: Missing value on line %d!\n" +msgstr "cupsaddsmb: Vermisse Wert in Zeile %d!\n" + +#, c-format +msgid "cupsaddsmb: Missing double quote on line %d!\n" +msgstr "cupsaddsmb: Vermisse doppelte AnfĂĽhrungszeichen in Zeile %d!\n" + +#, c-format +msgid "cupsaddsmb: Bad option + choice on line %d!\n" +msgstr "cupsaddsmb: Falscher Parameter + Auswahl in Zeile %d!\n" + +#, c-format +msgid "cupsaddsmb: Unable to connect to server \"%s\" for %s - %s\n" +msgstr "cupsaddsmb: Server \"%s\" nicht erreichbar fĂĽr %s - %s\n" + +#, c-format +msgid "cupsaddsmb: No PPD file for printer \"%s\" - skipping!\n" +msgstr "cupsaddsmb: PPD Datei fĂĽr Drucker \"%s\" fehlt - ĂĽberspringe!\n" + +#, c-format +msgid "cupsaddsmb: get-printer-attributes failed for \"%s\": %s\n" +msgstr "cupsaddsmb: get-printer-attributes fehlgeschlagen fĂĽr \"%s\": %s\n" + +#, c-format +msgid "cupsaddsmb: Unable to convert PPD file for %s - %s\n" +msgstr "cupsaddsmb: Kann PPD Datei nicht konvertieren fĂĽr %s - %s\n" + +#, c-format +msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n" +msgstr "" +"cupsaddsmb: Kann Windows 2000 Druckertreiberdateien (%d) nicht kopieren!\n" + +#, c-format +msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n" +msgstr "cupsaddsmb: Kann CUPS Druckertreiberdateien (%d) nicht kopieren!\n" + +#, c-format +msgid "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n" +msgstr "" +"cupsaddsmb: Kann Windows 2000 Druckertreiberdateien (%d) nicht " +"installieren!\n" + +#, c-format +msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n" +msgstr "" +"cupsaddsmb: Kann Windows 9x Druckertreiberdateien (%d) nicht kopieren!\n" + +#, c-format +msgid "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n" +msgstr "" +"cupsaddsmb: Kann Windows 9x Druckertreiberdateien (%d) nicht installieren!\n" + +#, c-format +msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n" +msgstr "cupsaddsmb: Kann Windows Druckertreiber (%d) nicht festlegen!\n" + +msgid "" +"Usage: cupsaddsmb [options] printer1 ... printerN\n" +" cupsaddsmb [options] -a\n" +"\n" +"Options:\n" +" -H samba-server Use the named SAMBA server\n" +" -U samba-user Authenticate using the named SAMBA user\n" +" -a Export all printers\n" +" -h cups-server Use the named CUPS server\n" +" -v Be verbose (show commands)\n" +msgstr "" +"Benutzung: cupsaddsmb [Parameter] Drucker1 ... DruckerN\n" +" cupsaddsmb [Parameter] -a\n" +"\n" +"Options:\n" +" -H Samba-Server Benutze den genannten Samba Server\n" +" -U Samba-Benutzer Authentifiziere mit dem genannten Samba Benutzer\n" +" -a Alle Drucker exportieren\n" +" -h CUPS-Server Benutze den genannten CUPS Server\n" +" -v Zusätzliche Ausgaben einschalten (zeige Kommandos)\n" + +msgid "cupstestppd: The -q option is incompatible with the -v option.\n" +msgstr "" +"cupstestppd: Der Parameter -q ist nicht kompatibel mit dem Parameter -v.\n" + +msgid "cupstestppd: The -v option is incompatible with the -q option.\n" +msgstr "" +"cupstestppd: Der Parameter -v ist nicht kompatibel mit dem Parameter -d.\n" + +#, c-format +msgid "" +" FAIL\n" +" **FAIL** Unable to open PPD file - %s\n" +msgstr "" +" FEHLGESCHLAGEN\n" +" **FEHLGESCHLAGEN** Kann PPD Datei nicht öffnen - %s\n" + +#, c-format +msgid "" +" FAIL\n" +" **FAIL** Unable to open PPD file - %s on line %d.\n" +msgstr "" +" FEHLGESCHLAGEN\n" +" **FEHLGESCHLAGEN** Kann PPD Datei nicht öffnen - %s in Zeile %d.\n" + +msgid " REF: Page 42, section 5.2.\n" +msgstr " REF: Seite 42, Kapitel 5.2.\n" + +msgid " REF: Page 20, section 3.4.\n" +msgstr " REF: Seite 20, Kapitel 3.4.\n" + +msgid " REF: Pages 45-46, section 5.2.\n" +msgstr " REF: Seite 45-46, Kapitel 5.2.\n" + +msgid " REF: Pages 42-45, section 5.2.\n" +msgstr " REF: Seiten 42-45, Kapitel 5.2.\n" + +msgid " REF: Pages 48-49, section 5.2.\n" +msgstr " REF: Seiten 48-49, Kapitel 5.2.\n" + +msgid " REF: Pages 52-54, section 5.2.\n" +msgstr " REF: Seiten 52-54, Kapitel 5.2.\n" + +msgid " REF: Page 15, section 3.2.\n" +msgstr " REF: Seite 15, Kapitel 3.2.\n" + +msgid " REF: Page 15, section 3.1.\n" +msgstr " REF: Seite 15, Kapitel 3.1.\n" + +msgid " REF: Pages 16-17, section 3.2.\n" +msgstr " REF: Seite 16-17, Kapitel 3.2.\n" + +msgid " REF: Page 19, section 3.3.\n" +msgstr " REF: Seite 19, Kapitel 3.3.\n" + +msgid " REF: Page 27, section 3.5.\n" +msgstr " REF: Seite 27, Kapitel 3.5.\n" + +msgid "" +"\n" +" DETAILED CONFORMANCE TEST RESULTS\n" +msgstr "" +"\n" +" DETAILIERTE ERGEBNISSE DES KONFORMITĂ„TSTESTS\n" + +#, c-format +msgid " WARN %s has no corresponding options!\n" +msgstr " WARNUNG %s hat keine entsprechenden Parameter!\n" + +msgid " FAIL\n" +msgstr " FEHLGESCHLAGEN\n" + +msgid "" +" **FAIL** REQUIRED DefaultImageableArea\n" +" REF: Page 102, section 5.15.\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT DefaultImageableArea\n" +" REF: Seite 102, Kapitel 5.15.\n" + +#, c-format +msgid "" +" **FAIL** BAD DefaultImageableArea %s!\n" +" REF: Page 102, section 5.15.\n" +msgstr "" +" **FEHLGESCHLAGEN** FALSCHE DefaultImageableArea %s!\n" +" REF: Seite 102, Kapitel 5.15.\n" + +msgid " PASS DefaultImageableArea\n" +msgstr " BESTANDEN DefaultImageableArea\n" + +msgid "" +" **FAIL** REQUIRED DefaultPaperDimension\n" +" REF: Page 103, section 5.15.\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT DefaultPaperDimension\n" +" REF: Seite 103, Kapitel 5.15.\n" + +#, c-format +msgid "" +" **FAIL** BAD DefaultPaperDimension %s!\n" +" REF: Page 103, section 5.15.\n" +msgstr "" +" **FEHLGESCHLAGEN** FALSCHE DefaultPaperDimension %s!\n" +" REF: Seite 103, Kapitel 5.15.\n" + +msgid " PASS DefaultPaperDimension\n" +msgstr " BESTANDEN DefaultPaperDimension\n" + +#, c-format +msgid "" +" **FAIL** BAD Default%s %s\n" +" REF: Page 40, section 4.5.\n" +msgstr "" +" **FEHLGESCHLAGEN** FALSCHE Default%s %s\n" +" REF: Seite 40, Kapitel 4.5.\n" + +#, c-format +msgid " PASS Default%s\n" +msgstr " BESTANDEN Default%s\n" + +#, c-format +msgid "" +" **FAIL** REQUIRED Default%s\n" +" REF: Page 40, section 4.5.\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT Default%s\n" +" REF: Seite 40, Kapitel 4.5.\n" + +msgid " PASS FileVersion\n" +msgstr " BESTANDEN FileVersion\n" + +msgid "" +" **FAIL** REQUIRED FileVersion\n" +" REF: Page 56, section 5.3.\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT FileVersion\n" +" REF: Seite 56, Kapitel 5.3.\n" + +msgid " PASS FormatVersion\n" +msgstr " BESTANDEN FormatVersion\n" + +msgid "" +" **FAIL** REQUIRED FormatVersion\n" +" REF: Page 56, section 5.3.\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT FormatVersion\n" +" REF: Seite 56, Kapitel 5.3.\n" + +msgid " PASS LanguageEncoding\n" +msgstr " BESTANDEN LanguageEncoding\n" + +msgid "" +" **FAIL** REQUIRED LanguageEncoding\n" +" REF: Pages 56-57, section 5.3.\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT LanguageEncoding\n" +" REF: Seiten 56-57, Kapitel 5.3.\n" + +msgid " PASS LanguageVersion\n" +msgstr " BESTANDEN LanguageVersion\n" + +msgid "" +" **FAIL** REQUIRED LanguageVersion\n" +" REF: Pages 57-58, section 5.3.\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT LanguageVersion\n" +" REF: Seiten 57-58, Kapitel 5.3.\n" + +msgid "" +" **FAIL** BAD Manufacturer (should be \"HP\")\n" +" REF: Page 211, table D.1.\n" +msgstr "" +" **FEHLGESCHLAGEN** FALSCHER Manufacturer (sollte \"HP\" sein)\n" +" REF: Seite 211, Tabelle D.1.\n" + +msgid " PASS Manufacturer\n" +msgstr " BESTANDEN Manufacturer\n" + +msgid "" +" **FAIL** REQUIRED Manufacturer\n" +" REF: Pages 58-59, section 5.3.\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT Manufacturer\n" +" REF: Seiten 58-59, Kapitel 5.3.\n" + +#, c-format +msgid "" +" **FAIL** BAD ModelName - \"%c\" not allowed in string.\n" +" REF: Pages 59-60, section 5.3.\n" +msgstr "" +" **FEHLGESCHLAGEN** FALSCH ModelName - \"%c\" nicht in Zeichenkette " +"erlaubt.\n" +" REF: Seiten 59-60, Kapitel 5.3.\n" + +msgid " PASS ModelName\n" +msgstr " BESTANDEN Modellname\n" + +msgid "" +" **FAIL** REQUIRED ModelName\n" +" REF: Pages 59-60, section 5.3.\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT ModelName\n" +" REF: Seiten 59-60, Kapitel 5.3.\n" + +# NickName is a PPD term +msgid " PASS NickName\n" +msgstr " BESTANDEN NickName\n" + +msgid "" +" **FAIL** REQUIRED NickName\n" +" REF: Page 60, section 5.3.\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT NickName\n" +" REF: Seite 60, Kapitel 5.3.\n" + +msgid " PASS PageSize\n" +msgstr " BESTANDEN PageSize\n" + +msgid "" +" **FAIL** REQUIRED PageSize\n" +" REF: Pages 99-100, section 5.14.\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT PageSize\n" +" REF: Seiten 99-100, Kapitel 5.14.\n" + +msgid " PASS PageRegion\n" +msgstr " BESTANDEN PageRegion\n" + +msgid "" +" **FAIL** REQUIRED PageRegion\n" +" REF: Page 100, section 5.14.\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT PageRegion\n" +" REF: Seite 100, Kapitel 5.14.\n" + +msgid " PASS PCFileName\n" +msgstr " BESTANDEN PCFileName\n" + +msgid "" +" **FAIL** REQUIRED PCFileName\n" +" REF: Pages 61-62, section 5.3.\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT PCFileName\n" +" REF: Seiten 61-62, Kapitel 5.3.\n" + +msgid "" +" **FAIL** BAD Product - not \"(string)\".\n" +" REF: Page 62, section 5.3.\n" +msgstr "" +" **FEHLGESCHLAGEN** FALSCH Product - ist nicht \"(string)\".\n" +" REF: Seite 62, Kapitel 5.3.\n" + +msgid " PASS Product\n" +msgstr " BESTANDEN Product\n" + +msgid "" +" **FAIL** REQUIRED Product\n" +" REF: Page 62, section 5.3.\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT Product\n" +" REF: Seite 62, Kapitel 5.3.\n" + +msgid "" +" **FAIL** BAD PSVersion - not \"(string) int\".\n" +" REF: Pages 62-64, section 5.3.\n" +msgstr "" +" **FEHLGESCHLAGEN** FALSCH PSVersion - ist nicht \"(string) int\".\n" +" REF: Seiten 62-64, Kapitel 5.3.\n" + +msgid " PASS PSVersion\n" +msgstr " BESTANDEN PSVersion\n" + +msgid "" +" **FAIL** REQUIRED PSVersion\n" +" REF: Pages 62-64, section 5.3.\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT PSVersion\n" +" REF: Seiten 62-64, Kapitel 5.3.\n" + +msgid "" +" **FAIL** BAD ShortNickName - longer than 31 chars.\n" +" REF: Pages 64-65, section 5.3.\n" +msgstr "" +" **FEHLGESCHLAGEN** FALSCH ShortNickName - länger als 31 Zeichen.\n" +" REF: Seiten 64-65, Kapitel 5.3.\n" + +msgid " PASS ShortNickName\n" +msgstr " BESTANDEN ShortNickName\n" + +msgid "" +" **FAIL** REQUIRED ShortNickName\n" +" REF: Page 64-65, section 5.3.\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT ShortNickName\n" +" REF: Seiten 64-65, Kapitel 5.3.\n" + +msgid "" +" **FAIL** BAD JobPatchFile attribute in file\n" +" REF: Page 24, section 3.4.\n" +msgstr "" +" **FEHLGESCHLAGEN** FALSCH JobPatchFile Eigenschaften in Datei\n" +" REF: Seiten 24, Kapitel 3.4.\n" + +msgid "" +" **FAIL** REQUIRED PageSize\n" +" REF: Page 41, section 5.\n" +" REF: Page 99, section 5.14.\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT PageSize\n" +" REF: Seite 41, Kapitel 5.\n" +" REF: Seite 99, Kapitel 5.14.\n" + +#, c-format +msgid "" +" **FAIL** REQUIRED ImageableArea for PageSize %s\n" +" REF: Page 41, section 5.\n" +" REF: Page 102, section 5.15.\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT ImageableArea fĂĽr PageSize %s\n" +" REF: Seite 41, Kapitel 5.\n" +" REF: Seite 102, Kapitel 5.15.\n" + +#, c-format +msgid "" +" **FAIL** REQUIRED PaperDimension for PageSize %s\n" +" REF: Page 41, section 5.\n" +" REF: Page 103, section 5.15.\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT PaperDimension fĂĽr PageSize %s\n" +" REF: Seite 41, Kapitel 5.\n" +" REF: Seite 103, Kapitel 5.15.\n" + +#, c-format +msgid "" +" **FAIL** Bad %s choice %s!\n" +" REF: Page 84, section 5.9\n" +msgstr "" +" **FEHLGESCHLAGEN** Falsche %s Auswahl %s!\n" +" REF: Seite 84, Kapitel 5.9\n" + +#, c-format +msgid "" +" **FAIL** REQUIRED %s does not define choice None!\n" +" REF: Page 122, section 5.17\n" +msgstr "" +" **FEHLGESCHLAGEN** BENĂ–TIGT %s definiert nicht die Auswahl \"None\"!\n" +" REF: Seite 122, Kapitel 5.17\n" + +#, c-format +msgid "" +" **FAIL** Bad %s choice %s!\n" +" REF: Page 122, section 5.17\n" +msgstr "" +" **FEHLGESCHLAGEN** Falsche %s Auswahl %s!\n" +" REF: Seite 122, Kapitel 5.17\n" + +msgid " PASS\n" +msgstr " BESTANDEN\n" + +#, c-format +msgid "" +" WARN Duplex option keyword %s should be named Duplex or " +"JCLDuplex!\n" +" REF: Page 122, section 5.17\n" +msgstr "" +" WARNUNG SchlĂĽsselwort fĂĽr Duplexparameter %s sollte Duplex oder " +"JCLDuplex heiĂźen!\n" +" REF: Seite 122, Kapitel 5.17\n" + +msgid " WARN Default choices conflicting!\n" +msgstr " WARNUNG Konflikte in der Standardauswahl!\n" + +#, c-format +msgid "" +" WARN Obsolete PPD version %.1f!\n" +" REF: Page 42, section 5.2.\n" +msgstr "" +" WARNUNG Obsolete PPD Version %.1f!\n" +" REF: Seite 42, Kapitel 5.2.\n" + +msgid "" +" WARN LanguageEncoding required by PPD 4.3 spec.\n" +" REF: Pages 56-57, section 5.3.\n" +msgstr "" +" WARNUNG LanguageEncoding wird verlangt von PPD 4.3 Spez.\n" +" REF: Seiten 56-57, Kapitel 5.3.\n" + +msgid "" +" WARN Manufacturer required by PPD 4.3 spec.\n" +" REF: Pages 58-59, section 5.3.\n" +msgstr "" +" WARNUNG Manufacturer wird verlangt von PPD 4.3 Spez.\n" +" REF: Seiten 58-59, Kapitel 5.3.\n" + +msgid "" +" WARN PCFileName longer than 8.3 in violation of PPD spec.\n" +" REF: Pages 61-62, section 5.3.\n" +msgstr "" +" WARNUNG PCFileName länger als 8.3 ist eine Verletzung der PPD " +"Spez.\n" +" REF: Seiten 61-62, Kapitel 5.3.\n" + +msgid "" +" WARN ShortNickName required by PPD 4.3 spec.\n" +" REF: Pages 64-65, section 5.3.\n" +msgstr "" +" WARNUNG ShortNickName wird verlangt von PPD 4.3 Spez.\n" +" REF: Seiten 64-65, Kapitel 5.3.\n" + +msgid "" +" WARN Protocols contains both PJL and BCP; expected TBCP.\n" +" REF: Pages 78-79, section 5.7.\n" +msgstr "" +" WARNUNG Protokoll enthält PJL und BCP; TBCP wird erwartet.\n" +" REF: Seiten 78-79, Kapitel 5.7.\n" + +msgid "" +" WARN Protocols contains PJL but JCL attributes are not set.\n" +" REF: Pages 78-79, section 5.7.\n" +msgstr "" +" WARNUNG Protokoll enthält PJL jedoch sind keine JCL Eigenschaften " +"gesetzt.\n" +" REF: Seiten 78-79, Kapitel 5.7.\n" + +#, c-format +msgid "" +" WARN %s shares a common prefix with %s\n" +" REF: Page 15, section 3.2.\n" +msgstr "" +" WARNUNG %s teilt ein gemeinsames Präfix mit %s\n" +" REF: Seite 15, Kapitel 3.2.\n" + +#, c-format +msgid " %d ERROR%s FOUND\n" +msgstr " %d FEHLER%s GEFUNDEN\n" + +msgid " NO ERRORS FOUND\n" +msgstr " KEINE FEHLER GEFUNDEN\n" + +#, c-format +msgid "" +" WARN \"%s %s\" conflicts with \"%s %s\"\n" +" (constraint=\"%s %s %s %s\")\n" +msgstr "" +" WARNUNG \"%s %s\" kolidiert mit \"%s %s\"\n" +" (Beschränkung=\"%s %s %s %s\")\n" + +msgid "" +"Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[." +"gz]]\n" +" program | cupstestppd [-q] [-r] [-v[v]] -\n" +msgstr "" +"Benutzung: cupstestppd [-q] [-r] [-v[v]] Dateiname1.ppd[.gz] [... DateinameN." +"ppd[.gz]]\n" +" Programm | cupstestppd [-q] [-r] [-v[v]] -\n" + +msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n" +msgstr "lpstat: Braucht \"completed\" oder \"not-completed\" hinter -W!\n" + +msgid "lpstat: The -b option requires a destination argument.\n" +msgstr "lpstat: Der Parameter -b benötigt ein Zielargument.\n" + +msgid "Error: need hostname after '-h' option!\n" +msgstr "Fehler: Brauche Hostname hinter dem Parameter '-h'!\n" + +#, c-format +msgid "lpstat: Unknown option '%c'!\n" +msgstr "lpstat: Unbekannter Parameter '%c'!\n" + +#, c-format +msgid "lpstat: Invalid destination name in list \"%s\"!\n" +msgstr "lpstat: UngĂĽltiger Zielname in der Liste \"%s\"!\n" + +#, c-format +msgid "lpstat: Unknown destination \"%s\"!\n" +msgstr "lpstat: Unbekanntes Ziel \"%s\"!\n" + +#, c-format +msgid "lpstat: Unable to connect to server %s on port %d: %s\n" +msgstr "lpstat: Kann Server %s auf Port %d nicht erreichen: %s\n" + +#, c-format +msgid "lpstat: get-printers failed: %s\n" +msgstr "lpstat: get-printers fehlgeschlagen: %s\n" + +#, c-format +msgid "%s accepting requests since Jan 01 00:00\n" +msgstr "%s akzeptiert Anfragen seit Jan 01 00:00\n" + +#, c-format +msgid "" +"%s not accepting requests since Jan 01 00:00 -\n" +"\t%s\n" +msgstr "" +"%s akzeptiert keine Anfragen seit Jan 01 00:00 -\n" +"\t%s\n" + +#, c-format +msgid "%s/%s accepting requests since Jan 01 00:00\n" +msgstr "%s/%s akzeptiert Anfragen seit Jan 01 00:00\n" + +#, c-format +msgid "" +"%s/%s not accepting requests since Jan 01 00:00 -\n" +"\t%s\n" +msgstr "" +"%s/%s akzeptiert keine Anfragen seit Jan 01 00:00 -\n" +"\t%s\n" + +#, c-format +msgid "lpstat: get-classes failed: %s\n" +msgstr "lpstat: get-classes fehlgeschlagen: %s\n" + +#, c-format +msgid "members of class %s:\n" +msgstr "Mitglieder der Klasse %s:\n" + +#, c-format +msgid "system default destination: %s/%s\n" +msgstr "System Standardziel: %s/%s\n" + +#, c-format +msgid "system default destination: %s\n" +msgstr "System Standardziel: %s\n" + +#, c-format +msgid "" +"lpstat: error - %s environment variable names non-existent destination \"%s" +"\"!\n" +msgstr "" +"lpstat: Fehler - Umgebungsvariable %s enthält das nicht vorhandene Ziel \"%s" +"\"!\n" + +msgid "no system default destination\n" +msgstr "Kein systemweites Standardziel\n" + +#, c-format +msgid "Output for printer %s is sent to remote printer %s on %s\n" +msgstr "" +"Ausgabe fĂĽr Drucker %s wurde gesendet an entfernten Drucker %s auf %s\n" + +#, c-format +msgid "Output for printer %s is sent to %s\n" +msgstr "Ausgabe fĂĽr Drucker %s wurde gesendet an %s\n" + +#, c-format +msgid "Output for printer %s/%s is sent to remote printer %s on %s\n" +msgstr "" +"Ausgabe fĂĽr Drucker %s/%s wurde gesendet an entfernten Drucker %s auf %s\n" + +#, c-format +msgid "Output for printer %s/%s is sent to %s\n" +msgstr "Ausgabe fĂĽr Drucker %s/%s wurde gesendet an %s\n" + +#, c-format +msgid "device for %s: %s\n" +msgstr "Gerät fĂĽr %s: %s\n" + +#, c-format +msgid "device for %s/%s: %s\n" +msgstr "Gerät fĂĽr %s/%s: %s\n" + +#, c-format +msgid "lpstat: get-jobs failed: %s\n" +msgstr "lpstat: get-jobs fehlgeschlagen: %s\n" + +#, c-format +msgid "\tqueued for %s\n" +msgstr "\teingereiht fĂĽr %s\n" + +#, c-format +msgid "printer %s is idle. enabled since %s\n" +msgstr "Drucker %s ist frei. freigegeben seit %s\n" + +#, c-format +msgid "printer %s now printing %s-%d. enabled since %s\n" +msgstr "Drucker %s druckt gerade %s-%d. freigegeben seit %s\n" + +#, c-format +msgid "printer %s disabled since %s -\n" +msgstr "Drucker %s ist gesperrt seit %s -\n" + +msgid "\treason unknown\n" +msgstr "\tGrund unbekannt\n" + +msgid "" +"\tForm mounted:\n" +"\tContent types: any\n" +"\tPrinter types: unknown\n" +msgstr "" +"\tEingebundenes Formular:\n" +"\tInhaltstypen: keine\n" +"\tDruckertypen: unbekannt\n" + +#, c-format +msgid "\tDescription: %s\n" +msgstr "\tBeschreibung: %s\n" + +msgid "\tAlerts:" +msgstr "\tAlarme:" + +#, c-format +msgid "\tLocation: %s\n" +msgstr "\tOrt: %s\n" + +msgid "\tConnection: remote\n" +msgstr "\tVerbindung: entfernt\n" + +#, c-format +msgid "\tInterface: %s.ppd\n" +msgstr "\tInterface: %s.ppd\n" + +msgid "\tConnection: direct\n" +msgstr "\tVerbindung: direkt\n" + +#, c-format +msgid "\tInterface: %s/interfaces/%s\n" +msgstr "\tInterface: %s/interfaces/%s\n" + +#, c-format +msgid "\tInterface: %s/ppd/%s.ppd\n" +msgstr "\tInterface: %s/ppd/%s.ppd\n" + +msgid "\tOn fault: no alert\n" +msgstr "\tBei Fehlerfall: kein Alarm\n" + +msgid "\tAfter fault: continue\n" +msgstr "\tNach Fehlerfall: fortsetzen\n" + +msgid "\tUsers allowed:\n" +msgstr "\tErlaubte Benutzer:\n" + +msgid "\tUsers denied:\n" +msgstr "\tNicht erlaubte Benutzer:\n" + +msgid "\t\t(all)\n" +msgstr "\t\t(alle)\n" + +msgid "\tForms allowed:\n" +msgstr "\tErlaubte Formulare:\n" + +msgid "\t\t(none)\n" +msgstr "\t\t(keine)\n" + +msgid "\tBanner required\n" +msgstr "\tBanner benötigt\n" + +msgid "\tCharset sets:\n" +msgstr "\tZeichensatzeinstellungen:\n" + +msgid "\tDefault pitch:\n" +msgstr "\tStandard Zeichenabstand:\n" + +msgid "\tDefault page size:\n" +msgstr "\tStandard Seitengröße:\n" + +msgid "\tDefault port settings:\n" +msgstr "\tStandard Porteinstellungen:\n" + +#, c-format +msgid "printer %s/%s is idle. enabled since %s\n" +msgstr "Drucker %s/%s ist frei. freigegeben seit %s\n" + +#, c-format +msgid "printer %s/%s now printing %s-%d. enabled since %s\n" +msgstr "Drucker %s/%s druckt gerade %s-%d. freigegeben seit %s\n" + +#, c-format +msgid "printer %s/%s disabled since %s -\n" +msgstr "Drucker %s/%s gesperrt seit %s -\n" + +msgid "scheduler is running\n" +msgstr "Scheduler läuft\n" + +msgid "scheduler is not running\n" +msgstr "Scheduler läuft nicht\n" + +#, c-format +msgid "lpadmin: Unable to connect to server: %s\n" +msgstr "lpadmin: Kann Server nicht erreichen: %s\n" + +msgid "" +"lpadmin: Unable to add a printer to the class:\n" +" You must specify a printer name first!\n" +msgstr "" +"lpadmin: Kann Drucker nicht zur Klasse hinzufĂĽgen:\n" +" Sie mĂĽssen zuerst einen Druckernamen angeben!\n" + +msgid "lpadmin: Expected class name after '-c' option!\n" +msgstr "lpadmin: Klassenname wird hinter dem Parameter '-c' erwartet!\n" + +msgid "lpadmin: Class name can only contain printable characters!\n" +msgstr "lpadmin: Klassenname kann nur druckbare Zeichen enthalten!\n" + +msgid "lpadmin: Expected printer name after '-d' option!\n" +msgstr "lpadmin: Druckername wird hinter dem Parameter '-d' erwartet!\n" + +msgid "lpadmin: Printer name can only contain printable characters!\n" +msgstr "lpadmin: Druckername kann nur druckbare Zeichen enthalten!\n" + +msgid "lpadmin: Expected hostname after '-h' option!\n" +msgstr "lpadmin: Hostname wird hinter dem Parameter '-h' erwartet!\n" + +msgid "" +"lpadmin: Unable to set the interface script:\n" +" You must specify a printer name first!\n" +msgstr "" +"lpadmin: Kann Interface Skript nicht festlegen:\n" +" Sie mĂĽssen zuerst einen Druckernamen angeben!\n" + +msgid "lpadmin: Expected interface after '-i' option!\n" +msgstr "lpadmin: Interface wird hinter dem Parameter '-i' erwartet!\n" + +msgid "" +"lpadmin: Unable to set the interface script or PPD file:\n" +" You must specify a printer name first!\n" +msgstr "" +"lpadmin: Kann weder Interface Skript noch PPD Datei setzen:\n" +" Sie mĂĽssen zuerst einen Druckernamen angeben!\n" + +msgid "lpadmin: Expected model after '-m' option!\n" +msgstr "lpadmin: Modell wird hinter dem Parameter '-m' erwartet!\n" + +msgid "lpadmin: Expected name=value after '-o' option!\n" +msgstr "lpadmin: Name=Wert wird hinter dem Parameter '-o' erwartet!\n" + +msgid "lpadmin: Expected printer after '-p' option!\n" +msgstr "lpadmin: Drucker wird hinter dem Parameter '-p' erwartet!\n" + +msgid "" +"lpadmin: Unable to remove a printer from the class:\n" +" You must specify a printer name first!\n" +msgstr "" +"lpadmin: Kann Drucker nicht aus Klasse entfernen:\n" +" Sie mĂĽssen zuerst einen Druckernamen angeben!\n" + +msgid "lpadmin: Expected class after '-r' option!\n" +msgstr "lpadmin: Klasse wird hinter dem Parameter '-r' erwartet!\n" + +msgid "lpadmin: Expected allow/deny:userlist after '-u' option!\n" +msgstr "" +"lpadmin: Benutzerliste fĂĽr Erlaubt/Verweigert wird nach dem Parameter '-u' " +"erwartet!\n" + +#, c-format +msgid "lpadmin: Unknown allow/deny option \"%s\"!\n" +msgstr "lpadmin: Unbekannter Erlaubt/Verweigert Parameter \"%s\"!\n" + +msgid "" +"lpadmin: Unable to set the device URI:\n" +" You must specify a printer name first!\n" +msgstr "" +"lpadmin: Kann Geräte URI nicht setzen:\n" +" Sie mĂĽssen zuerst einen Druckernamen angeben!\n" + +msgid "lpadmin: Expected device URI after '-v' option!\n" +msgstr "lpadmin: Erwarte Geräte URI hinter dem Parameter '-v'!\n" + +msgid "lpadmin: Expected printer or class after '-x' option!\n" +msgstr "" +"lpadmin: Drucker oder Klasse wird hinter dem Parameter '-x' erwartet!\n" + +msgid "" +"lpadmin: Unable to set the printer description:\n" +" You must specify a printer name first!\n" +msgstr "" +"lpadmin: Kann Druckerbeschreibung nicht setzen:\n" +" Sie mĂĽssen zuerst einen Druckernamen angeben!\n" + +msgid "lpadmin: Expected description after '-D' option!\n" +msgstr "lpadmin: Beschreibung wird hinter dem Parameter '-D' erwartet!\n" + +msgid "lpadmin: Expected file type(s) after '-I' option!\n" +msgstr "" +"lpadmin: Dateityp(en) wird bzw. werden hinter dem Parameter '-I' erwartet!\n" + +msgid "lpadmin: Warning - content type list ignored!\n" +msgstr "lpadmin: Warnung - Datentypliste ignoriert!\n" + +msgid "" +"lpadmin: Unable to set the printer location:\n" +" You must specify a printer name first!\n" +msgstr "" +"lpadmin: Kann Druckeraufstellort nicht setzen:\n" +" Sie mĂĽssen zuerst einen Druckernamen angeben!\n" + +msgid "lpadmin: Expected location after '-L' option!\n" +msgstr "lpadmin: Ortsangabe wird hinter dem Parameter '-L' erwartet!\n" + +msgid "" +"lpadmin: Unable to set the PPD file:\n" +" You must specify a printer name first!\n" +msgstr "" +"lpadmin: Kann PPD Datei nicht setzen:\n" +" Sie mĂĽssen zuerst einen Druckernamen angeben!\n" + +msgid "lpadmin: Expected PPD after '-P' option!\n" +msgstr "lpadmin: PPD wird hinter dem Parameter '-P' erwartet!\n" + +#, c-format +msgid "lpadmin: Unknown option '%c'!\n" +msgstr "lpadmin: Unbekannter Parameter '%c'!\n" + +#, c-format +msgid "lpadmin: Unknown argument '%s'!\n" +msgstr "lpadmin: Unbekanntes Argument '%s'!\n" + +msgid "" +"lpadmin: Unable to set the printer options:\n" +" You must specify a printer name first!\n" +msgstr "" +"lpadmin: Kann Druckereinstellungen nicht setzen:\n" +" Sie mĂĽssen zuerst einen Druckernamen angeben!\n" + +msgid "" +"Usage:\n" +"\n" +" lpadmin [-h server] -d destination\n" +" lpadmin [-h server] -x destination\n" +" lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]\n" +" [-r remove-class] [-v device] [-D description]\n" +" [-P ppd-file] [-o name=value]\n" +" [-u allow:user,user] [-u deny:user,user]\n" +"\n" +msgstr "" +"Benutzung:\n" +"\n" +" lpadmin [-h Server] -d Ziel\n" +" lpadmin [-h Server] -x Ziel\n" +" lpadmin [-h Server] -p Drucker [-c hinzuzufĂĽgende-Klasse] [-i Interface] " +"[-m Modell]\n" +" [-r zu-löschende-Klasse] [-v Gerät] [-D " +"Beschreibung]\n" +" [-P PPD-Datei] [-o Name=Wert]\n" +" [-u allow:Benutzer,Benutzer] [-u deny:Benutzer," +"Benutzer]\n" +"\n" + +#, c-format +msgid "lpadmin: Unable to create temporary file: %s\n" +msgstr "lpadmin: Kann temporäre Datei nicht erstellen: %s\n" + +#, c-format +msgid "lpadmin: Unable to open file \"%s\": %s\n" +msgstr "lpadmin: Kann temporäre Datei \"%s\" nicht öffnen: %s\n" + +#, c-format +msgid "lpadmin: add-printer (set model) failed: %s\n" +msgstr "lpadmin: add-printer (Setzen des Modells) fehlgeschlagen: %s\n" + +#, c-format +msgid "lpadmin: add-printer (set description) failed: %s\n" +msgstr "" +"lpadmin: Drucker hinzufĂĽgen (Setzen der Beschreibung) fehlgeschlagen: %s\n" + +#, c-format +msgid "lpadmin: add-printer (set location) failed: %s\n" +msgstr "lpadmin: Drucker hinzufĂĽgen (Setzen des Ortes) fehlgeschlagen: %s\n" + +#, c-format +msgid "lpadmin: Unable to create temporary file - %s\n" +msgstr "lpadmin: Kann temporäre Datei nicht erstellen - %s\n" + +#, c-format +msgid "lpadmin: Unable to open PPD file \"%s\" - %s\n" +msgstr "lpadmin: Kann PPD Datei \"%s\" nicht öffnen - %s\n" + +#, c-format +msgid "lpadmin: %s failed: %s\n" +msgstr "lpadmin: %s fehlgeschlagen: %s\n" + +msgid "lp: Expected destination after -d option!\n" +msgstr "lp: Ziel wird hinter dem Parameter -d erwartet!\n" + +msgid "lp: Expected form after -f option!\n" +msgstr "lp: Formular wird hinter dem Parameter -f erwartet!\n" + +msgid "lp: Expected hostname after -h option!\n" +msgstr "lp: Hostname wird hinter dem Parameter -h erwartet!\n" + +msgid "lp: Expected job ID after -i option!\n" +msgstr "lp: Auftrags ID wird hinter dem Parameter -i erwartet!\n" + +msgid "lp: Error - cannot print files and alter jobs simultaneously!\n" +msgstr "" +"lp: Fehler - Kann nicht gleichzeitig Dateien drucken und Aufträge abändern!\n" + +msgid "lp: Error - bad job ID!\n" +msgstr "lp: Fehler - Falsche Auftrags ID!\n" + +msgid "lp: Expected copies after -n option!\n" +msgstr "lp: Kopienanzahl wird hinter dem Parameter -n erwartet!\n" + +msgid "lp: Expected option string after -o option!\n" +msgstr "lp: Parameterzeichenkette wird hinter dem Parameter -o erwartet!\n" + +#, c-format +msgid "lp: Expected priority after -%c option!\n" +msgstr "lp: Priorität wird hinter dem Parameter -%c erwartet!\n" + +msgid "lp: Priority must be between 1 and 100.\n" +msgstr "lp: Priorität muss zwischen 1 und 100 sein.\n" + +msgid "lp: Expected title after -t option!\n" +msgstr "lp: Titel wird hinter dem Parameter -t erwartet!\n" + +msgid "lp: Expected mode list after -y option!\n" +msgstr "lp: Modusliste hinter dem Parameter -y erwartet!\n" + +msgid "lp: Warning - mode option ignored!\n" +msgstr "lp: Warnung - Parameter fĂĽr Modus ignoriert!\n" + +msgid "lp: Expected hold name after -H option!\n" +msgstr "lp: Haltebezeichner wird hinter dem Parameter -H erwartet!\n" + +msgid "lp: Need job ID (-i) before \"-H restart\"!\n" +msgstr "lp: Brauche Auftrags ID (-i) vor \"-H restart\"!\n" + +msgid "lp: Expected page list after -P option!\n" +msgstr "lp: Seitenliste wird hinter dem Parameter -P erwartet!\n" + +msgid "lp: Expected character set after -S option!\n" +msgstr "lp: Zeichensatz wird hinter dem Parameter -S erwartet!\n" + +msgid "lp: Warning - character set option ignored!\n" +msgstr "lp: Warnung - Parameter fĂĽr Zeichnsatz wird ignoriert!\n" + +msgid "lp: Expected content type after -T option!\n" +msgstr "lp: Inhaltstyp hinter dem Parameter -T erwartet!\n" + +msgid "lp: Warning - content type option ignored!\n" +msgstr "lp: Warnung - Parameter fĂĽr Inhaltstyp ignoriert!\n" + +#, c-format +msgid "lp: Unknown option '%c'!\n" +msgstr "lp: Unbekannter Parameter '%c'!\n" + +msgid "" +"lp: Error - cannot print from stdin if files or a job ID are provided!\n" +msgstr "" +"lp: Fehler - Kann nicht von stdin drucken wenn Dateien oder eine Auftrags ID " +"ĂĽbergeben wurde!\n" + +#, c-format +msgid "lp: Unable to access \"%s\" - %s\n" +msgstr "lp: Zugriff auf \"%s\" nicht möglich - %s\n" + +#, c-format +msgid "lp: Too many files - \"%s\"\n" +msgstr "lp: Zu viele Dateien - \"%s\"\n" + +msgid "lp: error - no default destination available.\n" +msgstr "lp: Fehler - Kein Standardziel vorhanden.\n" + +msgid "lp: error - scheduler not responding!\n" +msgstr "lp: Fehler - Scheduler antwortet nicht!\n" + +#, c-format +msgid "lp: unable to create temporary file \"%s\" - %s\n" +msgstr "lp: Kann temporäre Datei \"%s\" nicht erstellen - %s\n" + +#, c-format +msgid "lp: error - unable to write to temporary file \"%s\" - %s\n" +msgstr "lp: Fehler - Kann nicht in temporäre Datei \"%s\" schreiben - %s\n" + +msgid "lp: stdin is empty, so no job has been sent.\n" +msgstr "lp: stdin ist leer, somit wurde kein Auftrag gesendet.\n" + +#, c-format +msgid "lp: unable to print file: %s\n" +msgstr "lp: Kann Datei nicht drucken: %s\n" + +#, c-format +msgid "request id is %s-%d (%d file(s))\n" +msgstr "Auftrags ID ist %s-%d (%d Datei(en))\n" + +#, c-format +msgid "lp: restart-job failed: %s\n" +msgstr "lp: restart-job fehlgeschlagen: %s\n" + +#, c-format +msgid "lp: set-job-attributes failed: %s\n" +msgstr "lp: set-job-attributes fehlgeschlagen: %s\n" + +#, c-format +msgid "lpinfo: Unable to connect to server: %s\n" +msgstr "lpinfo: Kann Server nicht erreichen: %s\n" + +#, c-format +msgid "lpinfo: Unknown option '%c'!\n" +msgstr "lpinfo: Unbekannter Parameter '%c'!\n" + +#, c-format +msgid "lpinfo: Unknown argument '%s'!\n" +msgstr "lpinfo: Unbekanntes Argument '%s'!\n" + +#, c-format +msgid "lpinfo: cups-get-devices failed: %s\n" +msgstr "lpinfo: cups-get-devices fehlgeschlagen: %s\n" + +#, c-format +msgid "" +"Device: uri = %s\n" +" class = %s\n" +" info = %s\n" +" make-and-model = %s\n" +msgstr "" +"Gerät: uri = %s\n" +" class = %s\n" +" info = %s\n" +" make-and-model = %s\n" + +#, c-format +msgid "lpinfo: cups-get-ppds failed: %s\n" +msgstr "lpinfo: cups-get-ppds fehlgeschlagen: %s\n" + +#, c-format +msgid "" +"Model: name = %s\n" +" natural_language = %s\n" +" make-and-model = %s\n" +msgstr "" +"Modell: name = %s\n" +" natural_language = %s\n" +" make-and-model = %s\n" + +#, c-format +msgid "lpmove: Unknown option '%c'!\n" +msgstr "lpmove: Unbekannter Parameter '%c'!\n" + +#, c-format +msgid "lpmove: Unknown argument '%s'!\n" +msgstr "lpmove: Unbekanntes Argument '%s'!\n" + +msgid "Usage: lpmove job dest\n" +msgstr "Benutzung: lpmove Auftrag Ziel\n" + +#, c-format +msgid "lpmove: Unable to connect to server: %s\n" +msgstr "lpmove: Kann Server nicht erreichen: %s\n" + +#, c-format +msgid "lpmove: move-job failed: %s\n" +msgstr "lpmove: move-job fehlgeschlagen: %s\n" + +msgid "lpoptions: Unknown printer or class!\n" +msgstr "lpoptions: Unbekannter Drucker oder Klasse!\n" + +msgid "lpoptions: No printers!?!\n" +msgstr "lpoptions: Keine Drucker!?!\n" + +#, c-format +msgid "lpoptions: Unable to add printer or instance: %s\n" +msgstr "lpoptions: Kann Drucker oder Instanz nicht hinzufĂĽgen: %s\n" + +#, c-format +msgid "lpoptions: Destination %s has no PPD file!\n" +msgstr "lpoptions: Ziel %s hat keine PPD Datei!\n" + +#, c-format +msgid "lpoptions: Unable to open PPD file for %s!\n" +msgstr "lpoptions: Kann PPD fĂĽr %s nicht öffnen!\n" + +msgid "" +"Usage: lpoptions [-h server] [-E] -d printer\n" +" lpoptions [-h server] [-E] [-p printer] -l\n" +" lpoptions [-h server] [-E] -p printer -o option[=value] ...\n" +" lpoptions [-h server] [-E] -x printer\n" +msgstr "" +"Benutzung: lpoptions [-h Server] [-E] -d Drucker\n" +" lpoptions [-h Server] [-E] [-p Drucker] -l\n" +" lpoptions [-h Server] [-E] -p Drucker -o Parameter[=Wert] ...\n" +" lpoptions [-h Server] [-E] -x Drucker\n" + +msgid "lppasswd: Only root can add or delete passwords!\n" +msgstr "lppasswd: Nur root kann Passwörter hinzufĂĽgen oder löschen!\n" + +msgid "Enter old password:" +msgstr "Altes Passwort eingeben:" + +#, c-format +msgid "lppasswd: Unable to copy password string: %s\n" +msgstr "lppasswd: Kann Passwort nicht kopieren: %s\n" + +msgid "Enter password:" +msgstr "Passwort eingeben:" + +msgid "Enter password again:" +msgstr "Passwort nochmal eingeben:" + +msgid "lppasswd: Sorry, passwords don't match!\n" +msgstr "lppasswd: Bedaure, Passwörter stimmen nicht ĂĽberein!\n" + +msgid "" +"lppasswd: Sorry, password rejected.\n" +"Your password must be at least 6 characters long, cannot contain\n" +"your username, and must contain at least one letter and number.\n" +msgstr "" +"lppasswd: Bedaure, Passwort zurĂĽckgewiesen.\n" +"Ihr Passwort muss zumindest 6 Zeichen lang sein, darf nicht den " +"Benutzernamen\n" +"enthalten, und muss mindestens einen Buchstaben und eine Zahl enthalten.\n" + +msgid "lppasswd: Password file busy!\n" +msgstr "lppasswd: Passwortdatei in Verwendung!\n" + +#, c-format +msgid "lppasswd: Unable to open password file: %s\n" +msgstr "lppasswd: Kann Passwortdatei nicht öffnen: %s\n" + +#, c-format +msgid "lppasswd: Unable to write to password file: %s\n" +msgstr "lppasswd: Kann nicht in die Passwortdatei schreiben: %s\n" + +#, c-format +msgid "lppasswd: user \"%s\" and group \"%s\" do not exist.\n" +msgstr "lppasswd: Benutzer \"%s\" und Gruppe \"%s\" existieren nicht.\n" + +msgid "lppasswd: Sorry, password doesn't match!\n" +msgstr "lppasswd: Bedaure, Passwort stimmt nicht ĂĽberein!\n" + +msgid "lppasswd: Password file not updated!\n" +msgstr "lppasswd: Passwortdatei wurde nicht aktualisiert!\n" + +#, c-format +msgid "lppasswd: failed to backup old password file: %s\n" +msgstr "lppasswd: Konnte alte Passwortdatei nicht sichern: %s\n" + +#, c-format +msgid "lppasswd: failed to rename password file: %s\n" +msgstr "lppasswd: Konnte Passwortdatei nicht umbenennen: %s\n" + +msgid "Usage: lppasswd [-g groupname]\n" +msgstr "Benutzung: lppasswd [-g Gruppenname]\n" + +msgid "" +"Usage: lppasswd [-g groupname] [username]\n" +" lppasswd [-g groupname] -a [username]\n" +" lppasswd [-g groupname] -x [username]\n" +msgstr "" +"Benutzung: lppasswd [-g Gruppenname] [Benutzername]\n" +" lppasswd [-g Gruppenname] -a [Benutzername]\n" +" lppasswd [-g Gruppenname] -x [Benutzername]\n" + +msgid "Start Printer" +msgstr "Starte Drucker" + +msgid "Stop Printer" +msgstr "Stoppe Drucker" + +msgid "Start Class" +msgstr "Starte Klasse" + +msgid "Stop Class" +msgstr "Stoppe Klasse" + +msgid "Accept Jobs" +msgstr "Akzeptiere Aufträge" + +msgid "Reject Jobs" +msgstr "Aufträge ablehnen" + +msgid "Purge Jobs" +msgstr "Eliminiere Aufträge" + +msgid "Set As Default" +msgstr "Setze als Standard" + +msgid "Administration" +msgstr "Verwaltung" + +msgid "Modify Class" +msgstr "Klasse ändern" + +msgid "Add Class" +msgstr "Klasse hinzufĂĽgen" + +msgid "" +"The class name may only contain up to 127 printable characters and may not " +"contain spaces, slashes (/), or the pound sign (#)." +msgstr "" +"Der Klassenname darf nur bis zu 127 druckbare Zeichen und keine Leerzeichen, " +"Slashes (/), oder das Rautezeichen (#) enthalten." + +msgid "Unable to modify class:" +msgstr "Kann Klasse nicht ändern:" + +msgid "Unable to add class:" +msgstr "Kann Klasse nicht hinzufĂĽgen:" + +msgid "Modify Printer" +msgstr "Drucker ändern" + +msgid "Add Printer" +msgstr "Drucker hinzufĂĽgen" + +msgid "" +"The printer name may only contain up to 127 printable characters and may not " +"contain spaces, slashes (/), or the pound sign (#)." +msgstr "" +"Der Druckername darf nur bis zu 127 druckbare Zeichen und keine Leerzeichen, " +"Slashes (/), oder das Rautezeichen (#) enthalten." + +msgid "Unable to get list of printer drivers:" +msgstr "Holen der Druckertreiberliste nicht möglich:" + +msgid "Unable to modify printer:" +msgstr "Kann Drucker nicht ändern:" + +msgid "Unable to add printer:" +msgstr "Kann Drucker nicht hinzufĂĽgen:" + +msgid "Set Printer Options" +msgstr "Druckereinstellungen setzen" + +msgid "Missing form variable!" +msgstr "Vermisse Formularvariable!" + +msgid "Unable to get PPD file!" +msgstr "Kann PPD Datei nicht holen!" + +msgid "Unable to open PPD file:" +msgstr "Kann PPD Datei nicht öffnen:" + +msgid "Banners" +msgstr "Banner" + +msgid "Starting Banner" +msgstr "Startbanner" + +msgid "Ending Banner" +msgstr "Endbanner" + +msgid "Policies" +msgstr "Richtlinien" + +msgid "Error Policy" +msgstr "Fehlerrichtlinie" + +msgid "Operation Policy" +msgstr "Betriebsrichtlinie" + +msgid "PS Binary Protocol" +msgstr "PS Binärprotokoll" + +msgid "None" +msgstr "Kein(e)" + +msgid "Unable to set options:" +msgstr "Kann Parameter nicht setzen:" + +msgid "Change Settings" +msgstr "Konfiguration ändern" + +msgid "Unable to change server settings:" +msgstr "Kann Servereinstellungen nicht ändern:" + +msgid "Unable to upload cupsd.conf file:" +msgstr "Kann die Datei cupsd.conf nicht hochladen:" + +msgid "Edit Configuration File" +msgstr "Bearbeite Konfigurationsdatei" + +msgid "Unable to create temporary file:" +msgstr "Kann temporäre Datei nicht erstellen:" + +msgid "Unable to access cupsd.conf file:" +msgstr "Kann auf die Datei cupsd.conf nicht zugreifen:" + +msgid "Unable to edit cupsd.conf files larger than 1MB!" +msgstr "Kann cupsd.conf Dateien größer als 1MB nicht bearbeiten!" + +msgid "Delete Class" +msgstr "Lösche Klasse" + +msgid "Unable to delete class:" +msgstr "Kann Klasse nicht löschen:" + +msgid "Delete Printer" +msgstr "Lösche Drucker" + +msgid "Unable to delete printer:" +msgstr "Kann Drucker nicht löschen:" + +msgid "Export Printers to Samba" +msgstr "Drucker fĂĽr Samba bereitstellen" + +msgid "Unable to fork process!" +msgstr "Kann Prozess nicht forken!" + +msgid "Unable to connect to server!" +msgstr "Kann Server nicht erreichen!" + +msgid "Unable to get printer attributes!" +msgstr "Kann Druckereigenschaften nicht holen!" + +msgid "Unable to convert PPD file!" +msgstr "Kann PPD Datei nicht konvertieren!" + +msgid "Unable to copy Windows 2000 printer driver files!" +msgstr "Kann Windows 2000 Druckertreiberdateien nicht kopieren!" + +msgid "Unable to install Windows 2000 printer driver files!" +msgstr "Kann Windows 2000 Druckertreiberdateien nicht installieren!" + +msgid "Unable to copy Windows 9x printer driver files!" +msgstr "Kann Windows 9x Druckertreiberdateien nicht kopieren!" + +msgid "Unable to install Windows 9x printer driver files!" +msgstr "Kann Windows 9x Druckertreiberdateien nicht installieren!" + +msgid "Unable to set Windows printer driver!" +msgstr "Kann Windows Druckertreiber nicht festlegen!" + +msgid "No printer drivers found!" +msgstr "Keine Druckertreiber gefunden!" + +msgid "Unable to execute cupsaddsmb command!" +msgstr "Kann Befehl cupsaddsmb nicht ausfĂĽhren!" + +#, c-format +msgid "cupsaddsmb failed with status %d" +msgstr "cupsaddsmb fehlgeschlagen mit Status %d" + +#, c-format +msgid "cupsaddsmb crashed on signal %d" +msgstr "cupsaddsmb abgestĂĽrzt mit Signal %d" + +msgid "A Samba username is required to export printer drivers!" +msgstr "" +"Ein Samba Benutzername wird benötigt um Drucker fĂĽr Samba bereitzustellen!" + +msgid "A Samba password is required to export printer drivers!" +msgstr "Ein Samba Passwort wird benötigt um Druckertreiber bereitzustellen!" + +msgid "Unable to open cupsd.conf file:" +msgstr "Kann die Datei cupsd.conf nicht öffnen:" + +msgid "Unable to change printer:" +msgstr "Kann Drucker nicht ändern:" + +msgid "Set Allowed Users" +msgstr "Erlaubte Benutzer festlegen:" + +msgid "Unable to get printer attributes:" +msgstr "Kann Druckereigenschaften nicht holen:" + +msgid "Set Publishing" +msgstr "Veröffentlichung setzen" + +msgid "Unable to change printer-is-shared attribute:" +msgstr "Kann die Eigenschaft printer-is-shared nicht ändern:" + +msgid "Classes" +msgstr "Klassen" + +msgid "Unable to get class list:" +msgstr "Kann Klassenliste nicht holen:" + +msgid "Unable to get class status:" +msgstr "Kann Klassenstatus nicht holen:" + +msgid "Move Job" +msgstr "Verschiebe Auftrag" + +msgid "Unable to find destination for job!" +msgstr "Kann das Ziel fĂĽr den Auftrag nicht ermitteln!" + +msgid "Move All Jobs" +msgstr "Verschiebe alle Aufträge" + +msgid "Unable to move job" +msgstr "Kann Auftrag nicht verschieben" + +msgid "Unable to move jobs" +msgstr "Kann Aufträge nicht verschieben" + +msgid "Print Test Page" +msgstr "Drucke Testseite" + +msgid "Unable to print test page:" +msgstr "Kann Testseite nicht drucken:" + +msgid "Jobs" +msgstr "Aufträge" + +msgid "Job operation failed:" +msgstr "AuftragsdurchfĂĽhrung fehlgeschlagen:" + +msgid "Printers" +msgstr "Drucker" + +msgid "Unable to get printer list:" +msgstr "Kann Druckerliste nicht holen:" + +msgid "Unable to get printer status:" +msgstr "Kann Druckerstatus nicht holen:" + +msgid "OK" +msgstr "OK" + +msgid "Unable to open PPD file" +msgstr "Kann PPD Datei nicht öffnen" + +msgid "NULL PPD file pointer" +msgstr "Zeiger fĂĽr PPD Datei ist NULL" + +msgid "Memory allocation error" +msgstr "Speicherreservierungsfehler" + +msgid "Missing PPD-Adobe-4.x header" +msgstr "Vermisse PPD-Adobe-4.x header" + +msgid "Missing value string" +msgstr "Vermisse Zeichenkette fĂĽr Wert" + +msgid "Internal error" +msgstr "Interner Fehler" + +msgid "Bad OpenGroup" +msgstr "Falsche OpenGroup-Angabe" + +msgid "OpenGroup without a CloseGroup first" +msgstr "OpenGroup ohne vorheriges CloseGroup" + +msgid "Bad OpenUI/JCLOpenUI" +msgstr "Falsche OpenUI/JCLOpenUI-Angabe" + +msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first" +msgstr "OpenUI/JCLOpenUI ohne vorheriges CloseUI/JCLCloseUI" + +msgid "Bad OrderDependency" +msgstr "Falsche OrderDependency-Angabe" + +msgid "Bad UIConstraints" +msgstr "Falsche UIConstraints-Angabe" + +msgid "Missing asterisk in column 1" +msgstr "Vermisse Stern in Zeile 1" + +msgid "Line longer than the maximum allowed (255 characters)" +msgstr "Zeile ist länger als maximal erlaubt (255 Zeichen)" + +msgid "Illegal control character" +msgstr "UngĂĽltiges Steuerzeichen" + +msgid "Illegal main keyword string" +msgstr "UngĂĽltige Zeichenkette fĂĽr HauptschlĂĽsselwort" + +msgid "Illegal option keyword string" +msgstr "UngĂĽltige Zeichenkette fĂĽr Eigenschafts-SchlĂĽsselwort" + +msgid "Illegal translation string" +msgstr "UngĂĽltige Ăśbersetzungszeichenkette" + +# Whitespace. Tab, Space, CR... +msgid "Illegal whitespace character" +msgstr "UngĂĽltiges Whitespace-Zeichen" + +msgid "Bad custom parameter" +msgstr "Falscher benutzerspezifischer Parameter" + +msgid "Unknown" +msgstr "Unbekannt" + +msgid "Custom" +msgstr "Benutzerspezifisch" + +msgid "JCL" +msgstr "JCL" + +msgid "No authentication information provided!" +msgstr "Keine Authentifizierungsinformationen ĂĽbergeben!" + +#, c-format +msgid "Password for %s required to access %s via SAMBA: " +msgstr "Passwort fĂĽr %s benötigt um auf %s via SAMBA zugreifen zu können." + +#, c-format +msgid "Running command: %s %s -N -U '%s%%%s' -c '%s'\n" +msgstr "Befehl wird ausgefĂĽhrt: %s %s -N -U '%s%%%s' -c '%s'\n" + +#, c-format +msgid "cupsaddsmb: Unable to run \"%s\": %s\n" +msgstr "cupsaddsmb: Kann \"%s\" nicht ausfĂĽhren: %s\n" + +msgid "cupsaddsmb: No Windows printer drivers are installed!\n" +msgstr "cupsaddsmb: Keine Windows Druckertreiber installiert!\n" + +msgid "cupsaddsmb: Warning, no Windows 2000 printer drivers are installed!\n" +msgstr "cupsaddsmb: Warnung, keine Windows 2000 Druckertreiber installiert!\n" + +#, c-format +msgid "lpadmin: Printer %s is already a member of class %s.\n" +msgstr "lpadmin: Drucker %s ist bereits Mitglied der Klasse %s.\n" + +msgid "lpadmin: No member names were seen!\n" +msgstr "lpadmin: Keine Mitgliedernamen gesehen!\n" + +#, c-format +msgid "lpadmin: Printer %s is not a member of class %s.\n" +msgstr "lpadmin: Drucker %s ist kein Mitglied der Klasse %s.\n" + +#, c-format +msgid "" +"Device: uri = %s\n" +" class = %s\n" +" info = %s\n" +" make-and-model = %s\n" +" device-id = %s\n" +msgstr "" +"Gerät: uri = %s\n" +" class = %s\n" +" info = %s\n" +" make-and-model = %s\n" +" device-id = %s\n" + +#, c-format +msgid "" +"Model: name = %s\n" +" natural_language = %s\n" +" make-and-model = %s\n" +" device-id = %s\n" +msgstr "" +"Modell: Name = %s\n" +" natural_language = %s\n" +" make-and-model = %s\n" +" device-id = %s\n" + +msgid "Usage: lpmove job/src dest\n" +msgstr "Benutzung: lpmove Auftrag/Quelle Ziel\n" + +msgid "lpstat: Need \"completed\", \"not-completed\", or \"all\" after -W!\n" +msgstr "" +"lpstat: Brauche \"completed\", \"not-completed\", oder \"all\" hinter dem " +"Parameter -W!\n" + +#, c-format +msgid "%s accepting requests since %s\n" +msgstr "%s akzeptiert Anfragen seit %s\n" + +#, c-format +msgid "" +"%s not accepting requests since %s -\n" +"\t%s\n" +msgstr "" +"%s akzeptiert keine Anfragen seit %s -\n" +"\t%s\n" + +#, c-format +msgid "%s/%s accepting requests since %s\n" +msgstr "%s/%s akzeptiert Anfragen seit %s\n" + +#, c-format +msgid "" +"%s/%s not accepting requests since %s -\n" +"\t%s\n" +msgstr "" +"%s/%s akzeptiert keine Anfragen seit %s -\n" +"\t%s\n" + +msgid "lpc> " +msgstr "lpc> " + +#, c-format +msgid "%s: Unable to contact server!\n" +msgstr "%s: Kann Server nicht erreichen!\n" + +#, c-format +msgid "%s: Error - expected username after '-U' option!\n" +msgstr "%s: Fehler - Benutzername wird hinter dem Parameter '-U' erwartet!\n" + +#, c-format +msgid "%s: Error - unknown destination \"%s/%s\"!\n" +msgstr "%s: Fehler - Unbekanntes Ziel \"%s/%s\"!\n" + +#, c-format +msgid "%s: Unknown destination \"%s\"!\n" +msgstr "%s: Unbekanntes Ziel \"%s\"!\n" + +#, c-format +msgid "%s: Error - expected hostname after '-h' option!\n" +msgstr "%s: Fehler - Hostname wird hinter dem Parameter '-h' erwartet!\n" + +#, c-format +msgid "" +"%s: error - %s environment variable names non-existent destination \"%s\"!\n" +msgstr "" +"%s: Fehler - Die Umgebungsvariable %s enthält das nicht existierende Ziel \"%" +"s\"!\n" + +#, c-format +msgid "%s: error - no default destination available.\n" +msgstr "%s: Fehler - Kein Standardziel verfĂĽgbar.\n" + +msgid "" +"Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n" +msgstr "" +"Benutzung: lpq [-P Ziel] [-U Benutzername] [-h Hostname[:Port]] [-l] " +"[+Intervall]\n" + +#, c-format +msgid "%s: Error - expected hostname after '-H' option!\n" +msgstr "%s: Fehler - Hostname wird hinter dem Parameter '-H' erwartet!\n" + +#, c-format +msgid "%s: Error - expected value after '-%c' option!\n" +msgstr "%s: Fehler - Wert wird hinter dem Paramter '-%c' erwartet!\n" + +#, c-format +msgid "" +"%s: Warning - '%c' format modifier not supported - output may not be " +"correct!\n" +msgstr "" +"%s: Warnung - Formatangabe '%c' nicht unterstĂĽtzt - Ausgabe ist " +"möglicherweise falsch!\n" + +#, c-format +msgid "%s: error - expected option=value after '-o' option!\n" +msgstr "%s: Fehler - Parameter=Wert wird hinter dem Parameter '-o' erwartet!\n" + +#, c-format +msgid "%s: Error - expected destination after '-P' option!\n" +msgstr "%s: Fehler - Ziel wird hinter dem Parameter '-P' erwartet!\n" + +#, c-format +msgid "%s: Error - expected copy count after '-#' option!\n" +msgstr "%s: Fehler - Kopienanzahl wird hinter dem Parameter '-#' erwartet!\n" + +#, c-format +msgid "%s: Error - expected name after '-%c' option!\n" +msgstr "%s: Fehler - Name wird hinter dem Paramter '-%c' erwartet!\n" + +#, c-format +msgid "%s: Error - unknown option '%c'!\n" +msgstr "%s: Fehler - Unbekannter Parameter '%c'!\n" + +#, c-format +msgid "%s: Error - unable to access \"%s\" - %s\n" +msgstr "%s: Fehler - Kann auf \"%s\" nicht zugreifen - %s\n" + +#, c-format +msgid "%s: Error - too many files - \"%s\"\n" +msgstr "%s: Fehler - Zu viele Dateien - \"%s\"\n" + +#, c-format +msgid "" +"%s: Error - %s environment variable names non-existent destination \"%s\"!\n" +msgstr "" +"%s: Fehler - Die Umgebungsvariable %s enthält das nicht existierende Ziel \"%" +"s\"!\n" + +#, c-format +msgid "%s: Error - no default destination available.\n" +msgstr "%s: Fehler - Kein Standardziel verfĂĽgbar.\n" + +#, c-format +msgid "%s: Error - scheduler not responding!\n" +msgstr "%s: Fehler - Scheduler antwortet nicht!\n" + +#, c-format +msgid "%s: Error - unable to create temporary file \"%s\" - %s\n" +msgstr "%s: Fehler - Kann die temporäre Datei \"%s\" nicht erzeugen - %s\n" + +#, c-format +msgid "%s: Error - unable to write to temporary file \"%s\" - %s\n" +msgstr "%s: Fehler - Kann nicht in die temporäre Datei \"%s\" schreiben - %s\n" + +#, c-format +msgid "%s: Error - stdin is empty, so no job has been sent.\n" +msgstr "%s: Fehler - stdin ist leer, somit wurde kein Auftrag gesendet.\n" + +#, c-format +msgid "%s: Error - unknown destination \"%s\"!\n" +msgstr "%s: Fehler - unbekanntes Ziel \"%s\"!\n" + +#, c-format +msgid "%s: Error - expected reason text after '-r' option!\n" +msgstr "" +"%s: Fehler - BegrĂĽndungstext wird hinter dem Parameter '-r' erwartet!\n" + +#, c-format +msgid "%s: Error - expected username after '-u' option!\n" +msgstr "%s: Fehler - Benutzernamen wird hinter dem Parameter '-u' erwartet!\n" + +#, c-format +msgid "%s: %s failed: %s\n" +msgstr "%s: %s fehlgeschlagen: %s\n" + +#, c-format +msgid "%s: Error - expected destination after '-d' option!\n" +msgstr "%s: Fehler - Ziel wird hinter dem Parameter '-d' erwartet!\n" + +#, c-format +msgid "%s: Error - expected form after '-f' option!\n" +msgstr "%s: Fehler - Formular wird hinter dem Parameter '-f' erwartet!\n" + +#, c-format +msgid "%s: Warning - form option ignored!\n" +msgstr "%s: Warnung - Parameter fĂĽr Formular ignoriert!\n" + +#, c-format +msgid "%s: Expected job ID after '-i' option!\n" +msgstr "%s: Auftrags ID wird hinter dem Parameter '-i' erwartet!\n" + +#, c-format +msgid "%s: Error - cannot print files and alter jobs simultaneously!\n" +msgstr "" +"%s: Fehler - Kann nicht gleichzeitig Dateien drucken und Aufträge abändern!\n" + +#, c-format +msgid "%s: Error - bad job ID!\n" +msgstr "%s: Fehler - Falsche Auftrags ID!\n" + +#, c-format +msgid "%s: Error - expected copies after '-n' option!\n" +msgstr "%s: Fehler - Kopienanzahl wird hinter dem Parameter '-n' erwartet!\n" + +#, c-format +msgid "%s: Error - expected option string after '-o' option!\n" +msgstr "" +"%s: Fehler - Zeichenkette mit Parametern wird hinter dem Parameter '-o' " +"erwartet!\n" + +#, c-format +msgid "%s: Error - expected priority after '-%c' option!\n" +msgstr "%s: Fehler - Priorität wird hinter dem Parameter '-%c' erwartet!\n" + +#, c-format +msgid "%s: Error - priority must be between 1 and 100.\n" +msgstr "%s: Fehler - Priorität muss zwischen 1 und 100 sein.\n" + +#, c-format +msgid "%s: Error - expected title after '-t' option!\n" +msgstr "%s: Fehler - Titel wird hinter dem Parameter '-t' erwartet!\n" + +#, c-format +msgid "%s: Error - expected mode list after '-y' option!\n" +msgstr "%s: Fehler - Modusliste wird hinter dem Parameter '-y' erwartet!\n" + +#, c-format +msgid "%s: Warning - mode option ignored!\n" +msgstr "%s: Warnung - Modusangabe ignoriert!\n" + +#, c-format +msgid "%s: Error - expected hold name after '-H' option!\n" +msgstr "" +"%s: Fehler - Haltebezeichnung wird hinter dem Parameter '-H' erwartet!\n" + +#, c-format +msgid "%s: Need job ID ('-i jobid') before '-H restart'!\n" +msgstr "%s: Brauche Auftrags ID ('-i jobid') vor '-H restart'!\n" + +#, c-format +msgid "%s: Error - expected page list after '-P' option!\n" +msgstr "%s: Fehler - Seitenliste wird hinter dem Paramter '-P' erwartet!\n" + +#, c-format +msgid "%s: Error - expected character set after '-S' option!\n" +msgstr "%s: Fehler - Zeichensatz wird hinter dem Paramter '-S' erwartet!\n" + +#, c-format +msgid "%s: Warning - character set option ignored!\n" +msgstr "%s: Warnung - Zeichensatzangabe ignoriert!\n" + +#, c-format +msgid "%s: Error - expected content type after '-T' option!\n" +msgstr "%s: Fehler - Inhaltstyp hinter dem Parameter '-T' erwartet!\n" + +#, c-format +msgid "%s: Warning - content type option ignored!\n" +msgstr "%s: Warnung - Parameter fĂĽr Inhaltstyp ignoriert!\n" + +#, c-format +msgid "" +"%s: Error - cannot print from stdin if files or a job ID are provided!\n" +msgstr "" +"%s: Fehler - Kann nicht von stdin drucken wenn Dateien oder eine Autrags ID " +"ĂĽbergeben wurde!\n" + +#, c-format +msgid "" +"%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' " +"option!\n" +msgstr "" +"%s: Fehler - Brauche \"completed\", \"not-completed\", oder \"all\" hinter " +"dem Parameter '-W'!\n" + +#, c-format +msgid "%s: Error - expected destination after '-b' option!\n" +msgstr "%s: Fehler - Ziel wird hinter dem Parameter '-b' erwartet!\n" + +#, c-format +msgid "%s: Invalid destination name in list \"%s\"!\n" +msgstr "%s: UngĂĽltiger Zielname in der Liste \"%s\"!\n" + +#, c-format +msgid "%s: Unable to connect to server\n" +msgstr "%s: Kann Server nicht erreichen\n" + +msgid "Print Job:" +msgstr "Druckauftrag:" + +msgid "pending" +msgstr "schwebend" + +msgid "held" +msgstr "gehalten" + +msgid "processing" +msgstr "verarbeite" + +msgid "stopped" +msgstr "gestoppt" + +msgid "canceled" +msgstr "abgebrochen" + +msgid "aborted" +msgstr "abgebrochen" + +msgid "completed" +msgstr "beendet" + +msgid "unknown" +msgstr "unbekannt" + +msgid "untitled" +msgstr "unbenannt" + +msgid "Printer:" +msgstr "Drucker:" + +msgid "idle" +msgstr "frei" + +msgid "Missing notify-subscription-ids attribute!" +msgstr "Vermisse Eigenschaft notify-subscription-ids!" + +msgid "Job subscriptions cannot be renewed!" +msgstr "Auftragssubkription kann nicht erneuert werden!" + +msgid "cupsd: Expected config filename after \"-c\" option!\n" +msgstr "" +"cupsd: Konfigurationsdateiname wird hinter dem Paramter \"-c\" erwartet!\n" + +msgid "cupsd: launchd(8) support not compiled in, running in normal mode.\n" +msgstr "" +"cupsd: launchd(8)-unterstĂĽtzung wurde nicht kompiliert, laufe im normalen " +"Modus.\n" + +#, c-format +msgid "cupsd: Unknown option \"%c\" - aborting!\n" +msgstr "cupsd: Unbekannter Paramter \"%c\" - Abbruch!\n" + +#, c-format +msgid "cupsd: Unknown argument \"%s\" - aborting!\n" +msgstr "cupsd: Unbekanntes Argument \"%s\" - Abbruch!\n" + +msgid "" +"Usage: cupsd [-c config-file] [-f] [-F] [-h] [-l]\n" +"\n" +"-c config-file Load alternate configuration file\n" +"-f Run in the foreground\n" +"-F Run in the foreground but detach\n" +"-h Show this usage message\n" +"-l Run cupsd from launchd(8)\n" +msgstr "" +"Benutzung: cupsd [-c Konfigurationsdatei] [-f] [-F] [-h] [-l]\n" +"\n" +"-c Konfig. Datei Lade alternative Konfigurationsdatei\n" +"-f Laufe im Vordergrund\n" +"-F Laufe abgetrennt im Vordergrund\n" +"-h Zeige diese Gebrauchsanweisung\n" +"-l cupsd ĂĽber launchd(8) laufen lassen\n" + +#, c-format +msgid " WARN Line %d only contains whitespace!\n" +msgstr " WARNUNG Zeile %d enthält nur Whitespace!\n" + +msgid "" +" WARN File contains a mix of CR, LF, and CR LF line endings!\n" +msgstr "" +" WARNUNG Datei enthält gemischt CR, LF und CR LF als Zeilenende!\n" + +msgid "" +" WARN Non-Windows PPD files should use lines ending with only LF, " +"not CR LF!\n" +msgstr "" +" WARNUNG Nicht-Windows PPD Dateien sollten nur das Zeilenende LF " +"benutzen, nicht CR LF!\n" + +msgid "Printer Maintenance" +msgstr "Druckerwartung" + +msgid "Unable to send maintenance job:" +msgstr "Kann Wartungsauftrag nicht senden:" + +#, c-format +msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n" +msgstr "cupsaddsmb: Keine PPD Datei fĂĽr Drucker \"%s\" vorhanden - %s\n" + +#, c-format +msgid " **FAIL** %s %s does not exist!\n" +msgstr " **FEHLGESCHLAGEN** %s %s existiert nicht!\n" + +#, c-format +msgid " **FAIL** Bad language \"%s\"!\n" +msgstr " **FEHLGESCHLAGEN** Falsche Sprache \"%s\"!\n" + +#, c-format +msgid " **FAIL** Missing \"%s\" translation string for option %s!\n" +msgstr "" +" **FEHLGESCHLAGEN** Vermisse \"%s\" Ăśbersetzung fĂĽr Parameter %s!\n" + +#, c-format +msgid "" +" **FAIL** Default translation string for option %s contains 8-bit " +"characters!\n" +msgstr "" +" **FEHLGESCHLAGEN** StandardĂĽbersetzung fĂĽr Parameter %s enthält 8-bit " +"Zeichen!\n" + +#, c-format +msgid "" +" **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n" +msgstr "" +" **FEHLGESCHLAGEN** Vermisse \"%s\" Ăśbersetzung fĂĽr Parameter %s, " +"Auswahl %s!\n" + +#, c-format +msgid "" +" **FAIL** Default translation string for option %s choice %s contains " +"8-bit characters!\n" +msgstr "" +" **FEHLGESCHLAGEN** StandardĂĽbersetzung fĂĽr Parameter %s Auswahl %s " +"enthält 8-bit Zeichen!\n" + +#, c-format +msgid " **FAIL** Bad cupsFilter value \"%s\"!\n" +msgstr " **FEHLGESCHLAGEN** Falscher cupsFilter Wert \"%s\"!\n" + +msgid "Help" +msgstr "Hilfe" + +#, c-format +msgid "Missing value on line %d!\n" +msgstr "Vermisse Wert in Zeile %d!\n" + +#, c-format +msgid "Missing double quote on line %d!\n" +msgstr "Vermisse doppelte AnfĂĽhrungszeichen in Zeile %d!\n" + +#, c-format +msgid "Bad option + choice on line %d!\n" +msgstr "Falscher Parameter + Auswahl in Zeile %d!\n" + +#, c-format +msgid "Unable to copy Windows 2000 printer driver files (%d)!\n" +msgstr "Kann Windows 2000 Druckertreiberdateien nicht kopieren (%d)!\n" + +#, c-format +msgid "Unable to copy CUPS printer driver files (%d)!\n" +msgstr "Kann CUPS Druckertreiberdateien nicht kopieren (%d)!\n" + +#, c-format +msgid "Unable to install Windows 2000 printer driver files (%d)!\n" +msgstr "Kann Windows 2000 Druckertreiberdateien nicht installieren (%d)!\n" + +#, c-format +msgid "Unable to copy Windows 9x printer driver files (%d)!\n" +msgstr "Kann Windows 9x Druckertreiberdateien nicht kopieren (%d)!\n" + +#, c-format +msgid "Unable to install Windows 9x printer driver files (%d)!\n" +msgstr "Kann Windows 9x Druckertreiberdateien nicht installieren (%d)!\n" + +msgid "No Windows printer drivers are installed!\n" +msgstr "Keine Windows Druckertreiber installiert!\n" + +msgid "Warning, no Windows 2000 printer drivers are installed!\n" +msgstr "Warnung, keine Windows 2000 Druckertreiber installiert!\n" + +#, c-format +msgid "Unable to set Windows printer driver (%d)!\n" +msgstr "Kann Windows Druckertreiber nicht setzen (%d)!\n" + +msgid "" +"Usage: cupsaddsmb [options] printer1 ... printerN\n" +" cupsaddsmb [options] -a\n" +"\n" +"Options:\n" +" -E Encrypt the connection to the server\n" +" -H samba-server Use the named SAMBA server\n" +" -U samba-user Authenticate using the named SAMBA user\n" +" -a Export all printers\n" +" -h cups-server Use the named CUPS server\n" +" -v Be verbose (show commands)\n" +msgstr "" +"Benutzung: cupsaddsmb [Parameter] Drucker1 ... DruckerN\n" +" cupsaddsmb [Parameter] -a\n" +"\n" +"Options:\n" +" -E Verbindung zum Server verschlĂĽsseln\n" +" -H Samba-Server Benutze den angegebenen Samba Server\n" +" -U Samba-Benutzer Authentifiziere mit dem angegebenen Samba Benutzer\n" +" -a Alle Drucker bereitstellen\n" +" -h CUPS-Server Benutze den angegebenen CUPS Server\n" +" -v zusätzliche Ausgaben einschalten (zeige Befehle)\n" + +#, c-format +msgid "Unable to copy Windows 2000 printer driver files (%d)!" +msgstr "Kann Windows 2000 Druckertreiberdateien nicht kopieren (%d)!" + +#, c-format +msgid "Unable to copy CUPS printer driver files (%d)!" +msgstr "Kann CUPS Druckertreiberdateien nicht kopieren (%d)!" + +#, c-format +msgid "Unable to install Windows 2000 printer driver files (%d)!" +msgstr "Kann Windows 2000 Druckertreiberdateien nicht installieren (%d)!" + +#, c-format +msgid "Unable to copy Windows 9x printer driver files (%d)!" +msgstr "Kann Windows 9x Druckertreiberdateien nicht kopieren (%d)!" + +#, c-format +msgid "Unable to install Windows 9x printer driver files (%d)!" +msgstr "Kann Windows 9x Druckertreiberdateien nicht installieren (%d)!" + +msgid "No Windows printer drivers are installed!" +msgstr "Keine Windows Druckertreiber installiert!" + +msgid "Warning, no Windows 2000 printer drivers are installed!" +msgstr "Warnung, keine Windows 2000 Druckertreiber installiert!" + +#, c-format +msgid "open of %s failed: %s" +msgstr "öffnen von %s fehlgeschlagen: %s" + +#, c-format +msgid "Running command: %s %s -N -A %s -c '%s'\n" +msgstr "Befehl wird ausgefĂĽhrt: %s %s -N -A %s -c '%s'\n" + +#, c-format +msgid "stat of %s failed: %s" +msgstr "PrĂĽfung von %s fehlgeschlagen: %s" + +#, c-format +msgid "Job #%d is already cancelled - can't cancel." +msgstr "Auftrag #%d wurde bereits abgebrochen - abbrechen nicht möglich." + +#, c-format +msgid "Job #%d is already aborted - can't cancel." +msgstr "Auftrag #%d wurde bereits abgebrochen - abbrechen nicht möglich." + +#, c-format +msgid "Job #%d is already completed - can't cancel." +msgstr "Auftrag #%d wurde bereits beendet - abbrechen nicht möglich." + +#, c-format +msgid "" +"You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%" +"s:%d%s</A>." +msgstr "" +"Um auf diese Seite zuzugreifen mĂĽssen Sie die URL <A HREF=\"https://%s:%d%s" +"\">https://%s:%d%s</A> verwenden." + +#, c-format +msgid "Unsupported format '%s'!" +msgstr "Nicht unterstĂĽtztes Format '%s'!" + +msgid "FAIL\n" +msgstr "FEHLGESCHLAGEN\n" + +#, c-format +msgid "" +" Line %d is longer than 255 characters (%d)!\n" +" REF: Page 25, Line Length\n" +msgstr "" +" Zeile %d ist länger als 255 Zeichen (%d)!\n" +" REF: Seite 25, Zeilenlänge\n" + +msgid "" +" Missing %!PS-Adobe-3.0 on first line!\n" +" REF: Page 17, 3.1 Conforming Documents\n" +msgstr "" +" Vermisse %!PS-Adobe-3.0 in der ersten Zeile!\n" +" REF: Seite 17, 3.1 Den Konventionen entsprechende Dokumente\n" + +#, c-format +msgid "" +" Bad %%%%Pages: on line %d!\n" +" REF: Page 43, %%%%Pages:\n" +msgstr "" +" Falsche %%%%Pages: in Zeile %d!\n" +" REF: Seite 43, %%%%Pages:\n" + +#, c-format +msgid "" +" Bad %%%%BoundingBox: on line %d!\n" +" REF: Page 39, %%%%BoundingBox:\n" +msgstr "" +" Falsche %%%%BoundingBox: in Zeile %d!\n" +" REF: Seite 39, %%%%BoundingBox:\n" + +#, c-format +msgid "" +" Bad %%%%Page: on line %d!\n" +" REF: Page 53, %%%%Page:\n" +msgstr "" +" Falsche %%%%Page: in Zeile %d!\n" +" REF: Seite 53, %%%%Page:\n" + +#, c-format +msgid "" +" Missing or bad %%BoundingBox: comment!\n" +" REF: Page 39, %%BoundingBox:\n" +msgstr "" +" Vermisster oder falscher %%BoundingBox: Kommentar!\n" +" REF: Seite 39, %%BoundingBox:\n" + +#, c-format +msgid "" +" Missing or bad %%Pages: comment!\n" +" REF: Page 43, %%Pages:\n" +msgstr "" +" Vermisster oder Falscher %%Pages: Kommentar!\n" +" REF: Seite 43, %%Pages:\n" + +#, c-format +msgid "" +" Missing %%EndComments comment!\n" +" REF: Page 41, %%EndComments\n" +msgstr "" +" Vermisster %%EndComments Kommentar!\n" +" REF: Seite 41, %%EndComments\n" + +#, c-format +msgid "" +" Missing or bad %%Page: comments!\n" +" REF: Page 53, %%Page:\n" +msgstr "" +" Vermisste oder falsche %%Page: Kommentare!\n" +" REF: Seite 53, %%Page:\n" + +#, c-format +msgid " Too many %%EndDocument comments!\n" +msgstr " Zu viele %%EndDocument Kommentare!\n" + +#, c-format +msgid " Too many %%BeginDocument comments!\n" +msgstr " Zu viele %%BeginDocument Kommentare!\n" + +#, c-format +msgid " Saw %d lines that exceeded 255 characters!\n" +msgstr " Sah %d Zeilen welche 255 Zeichen ĂĽberschreiten!\n" + +msgid "PASS\n" +msgstr "PASS\n" + +msgid " Warning: file contains binary data!\n" +msgstr " Warnung: Datei enthält binäre Daten!\n" + +#, c-format +msgid " Warning: obsolete DSC version %.1f in file!\n" +msgstr " Warnung: obsolete DSC Version %.1f in Datei!\n" + +#, c-format +msgid " Warning: no %%EndComments comment in file!\n" +msgstr " Warnung: keine %%EndComments Kommentare in Datei!\n" + +msgid "" +"Usage: cupstestdsc [options] filename.ps [... filename.ps]\n" +" cupstestdsc [options] -\n" +"\n" +"Options:\n" +"\n" +" -h Show program usage\n" +"\n" +" Note: this program only validates the DSC comments, not the PostScript " +"itself.\n" +msgstr "" +"Benutzung: cupstestdsc [Parameter] Dateiname.ps [... Dateiname.ps]\n" +" cupstestdsc [Parameter] -\n" +"\n" +"Parameter:\n" +"\n" +" -h Zeige Gebrauchsanleitung\n" +"\n" +" Notiz: Dieses Programm validiert nur die DSC Kommentare, nicht das " +"PostScript selbst.\n" + +#, c-format +msgid "Password for %s on %s? " +msgstr "Passwort fĂĽr %s auf %s? " + +msgid "" +" **FAIL** 1284DeviceId must be 1284DeviceID!\n" +" REF: Page 72, section 5.5\n" +msgstr "" +" **FEHLGESCHLAGEN** 1284DeviceId muss 1284DeviceID sein!\n" +" REF: Seite 72, Kapitel 5.5\n" + +#, fuzzy, c-format +msgid "Missing value on line %d!" +msgstr "Vermisse Wert in Zeile %d!\n" + +#, fuzzy, c-format +msgid "Missing double quote on line %d!" +msgstr "Vermisse doppelte AnfĂĽhrungszeichen in Zeile %d!\n" + +#, fuzzy, c-format +msgid "Bad option + choice on line %d!" +msgstr "Falscher Parameter + Auswahl in Zeile %d!\n" + +#, fuzzy +msgid "Empty PPD file!" +msgstr "Kann PPD Datei nicht kopieren!" + +#, fuzzy, c-format +msgid "Unable to set Windows printer driver (%d)!" +msgstr "Kann Windows Druckertreiber nicht setzen (%d)!\n" + +#, fuzzy, c-format +msgid "Unable to run \"%s\": %s\n" +msgstr "cupsaddsmb: Kann \"%s\" nicht ausfĂĽhren: %s\n" + +#, fuzzy, c-format +msgid "Job #%d is already canceled - can't cancel." +msgstr "Auftrag #%d wurde bereits abgebrochen - abbrechen nicht möglich." + +#, c-format +msgid "Bad notify-recipient URI \"%s\"!" +msgstr "" + +#, c-format +msgid "notify-recipient URI \"%s\" uses unknown scheme!" +msgstr "" + +#, fuzzy, c-format +msgid "Bad notify-pull-method \"%s\"!" +msgstr "Falscher port-monitor \"%s\"!" + +#, fuzzy, c-format +msgid "" +" **FAIL** %s must be 1284DeviceID!\n" +" REF: Page 72, section 5.5\n" +msgstr "" +" **FEHLGESCHLAGEN** 1284DeviceId muss 1284DeviceID sein!\n" +" REF: Seite 72, Kapitel 5.5\n" + +#, fuzzy, c-format +msgid "lpoptions: Unable to get PPD file for %s: %s\n" +msgstr "lpoptions: Kann PPD fĂĽr %s nicht öffnen!\n" diff --git a/test-plans/dotemacs.initsplit b/test-plans/dotemacs.initsplit new file mode 100644 index 0000000..b0e3543 --- /dev/null +++ b/test-plans/dotemacs.initsplit @@ -0,0 +1,8 @@ +(defconst toc:emacs-config-dir "~/" "") +(defun toc:load-config-file (filelist) + (dolist (file filelist) + (load (expand-file-name + (concat toc:emacs-config-dir file))) + (message "Loaded config file:%s" file) + )) +(toc:load-config-file '("test")) diff --git a/test-plans/emacs.deck b/test-plans/emacs.deck new file mode 100644 index 0000000..a985688 --- /dev/null +++ b/test-plans/emacs.deck @@ -0,0 +1,9 @@ +;;; This file is a flashcard.el deck file, and is not meant to be +;;; edited by hand. Please open it in Emacs, and do M-x flashcard-mode +;;; to use it. + +[*flashcard-deck* ([*flashcard-card* "Best editor in the world?" "Emacs" nil] [*flashcard-card* "Worst editor in the world?""Vi" nil] [*flashcard-card* "Best distribution in the world?" "Gentoo" nil] [*flashcard-card* "Gentoo team that is worthing spending money on?" "Emacs" nil]) nil] + +;;; Local Variables: *** +;;; coding: emacs-mule *** +;;; End: *** diff --git a/test-plans/example.org b/test-plans/example.org new file mode 100644 index 0000000..c389902 --- /dev/null +++ b/test-plans/example.org @@ -0,0 +1,24 @@ +* Top level headline +** Movies +*** Lord of the Rings + My favorite scenes are (in this order) + 1. The attack of the Rohirrim + 2. Eowyns fight with the witch king + + this was already my favorite scene in the book + + I really like Miranda Otto. + 3. Peter Jackson being shot by Legolas + - on DVD only + He makes a really funny face when it happens. + But in the end, not individual scenes matter but the film as a whole. + +* Example table + +| | N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) | +|---+----+-----+-----+-----+---------+------------| +| / | <> | < | | > | < | > | +| # | 1 | 1 | 1 | 1 | 1 | 1 | +| # | 2 | 4 | 8 | 16 | 1.4142 | 1.1892 | +| # | 3 | 9 | 27 | 81 | 1.7321 | 1.3161 | +| # | 10 | | | | | | +|---+----+-----+-----+-----+---------+------------| +#+TBLFM: $3=$2^2::$4=$2^3::$5=$2^4::$6=sqrt($2)::$7=sqrt(sqrt(($2)) diff --git a/test-plans/example.pl b/test-plans/example.pl new file mode 100644 index 0000000..bbd5832 --- /dev/null +++ b/test-plans/example.pl @@ -0,0 +1,34 @@ +#!/usr/bin/perl + +eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' + if 0; # not running under some shell + +# Computes and prints to stdout the CRC-32 values of the given files + +use strict; +use lib qw( blib/lib lib ); +use Archive::Zip; +use FileHandle; + +my $totalFiles = scalar(@ARGV); +foreach my $file (@ARGV) { + if ( -d $file ) { + warn "$0: ${file}: Is a directory\n"; + next; + } + my $fh = FileHandle->new(); + if ( !$fh->open( $file, 'r' ) ) { + warn "$0: $!\n"; + next; + } + binmode($fh); + my $buffer; + my $bytesRead; + my $crc = 0; + while ( $bytesRead = $fh->read( $buffer, 32768 ) ) { + $crc = Archive::Zip::computeCRC32( $buffer, $crc ); + } + printf( "%08x", $crc ); + print("\t$file") if ( $totalFiles > 1 ); + print("\n"); +} diff --git a/test-plans/example.rst b/test-plans/example.rst new file mode 100644 index 0000000..7d2cc6b --- /dev/null +++ b/test-plans/example.rst @@ -0,0 +1,8 @@ +An example:: + + Whitespace, newlines, blank lines, and all kinds of markup + (like *this* or \this) is preserved by literal blocks. + Lookie here, I've dropped an indentation level + (but not far enough) + +no more example
\ No newline at end of file diff --git a/test-plans/example.teco b/test-plans/example.teco new file mode 100644 index 0000000..9f5180c --- /dev/null +++ b/test-plans/example.teco @@ -0,0 +1,26 @@ +@t/ + + U1 + Q1"E @~no more~ | Q1:= ' + @~ bottle~ + (Q1-1)"E | @~s~ ' +/ + +99%b< + QbMt + @/ of beer on the wall, / + QbMt + @/ of beer. +/ + @/Take one down and pass it around, / + -1%bMt + @/ of beer on the wall. + +/ +> + +@/No more bottles of beer on the wall, no more bottles of beer. +Go to the store and buy some more, 99 bottles of beer on the wall. +/ + + diff --git a/test-plans/example.vhdl b/test-plans/example.vhdl new file mode 100644 index 0000000..bc83485 --- /dev/null +++ b/test-plans/example.vhdl @@ -0,0 +1,40 @@ +-- The following example is an up-counter with asynchronous reset, +-- parallel load and configurable width. It demonstrates the use +-- of the 'unsigned' type, type conversions between 'unsigned' and +-- 'std_logic_vector' and VHDL generics. The generics are very +-- close to arguments or templates in other traditional programming +-- languages like C++. + +library IEEE; +use IEEE.std_logic_1164.all; +use IEEE.numeric_std.all; -- for the unsigned type + +entity COUNTER is + generic ( + WIDTH : in natural := 32); + port ( + RST : in std_logic; + CLK : in std_logic; + LOAD : in std_logic; + DATA : in std_logic_vector(WIDTH-1 downto 0); + Q : out std_logic_vector(WIDTH-1 downto 0)); +end entity COUNTER; + +architecture RTL of COUNTER is + signal CNT : unsigned(WIDTH-1 downto 0); +begin + process(RST, CLK) is + begin + if RST = '1' then + CNT <= (others => '0'); + elsif rising_edge(CLK) then + if LOAD = '1' then + CNT <= unsigned(DATA); -- type is converted to unsigned + else + CNT <= CNT + 1; + end if; + end if; + end process; + + Q <= std_logic_vector(CNT); -- type is converted back to std_logic_vector +end architecture RTL; diff --git a/test-plans/hello.c b/test-plans/hello.c new file mode 100644 index 0000000..8f1edd6 --- /dev/null +++ b/test-plans/hello.c @@ -0,0 +1,7 @@ +#include <stdio.h> + +int main(void) +{ + printf("Hello World!\n"); + return 0; +} diff --git a/test-plans/hello.j b/test-plans/hello.j new file mode 100644 index 0000000..6ef8834 --- /dev/null +++ b/test-plans/hello.j @@ -0,0 +1,17 @@ +.class public HelloWorld.j +.super java/lang/Object + +.method public <init>()V + aload_0 + invokenonvirtual java/lang/Object/<init>()V + return +.end method + +.method public static main([Ljava/lang/String;)V + .limit stack 2 + .limit locals 2 + getstatic java/lang/System/out Ljava/io/PrintStream; + ldc "Hello World." + invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V + return +.end method diff --git a/test-plans/helloworld.dot b/test-plans/helloworld.dot new file mode 100644 index 0000000..347755d --- /dev/null +++ b/test-plans/helloworld.dot @@ -0,0 +1,7 @@ +digraph G { + node [label="\N"]; + graph [bb="0,0,70,108"]; + Hello [pos="35,90", width="0.86", height="0.50"]; + World [pos="35,18", width="0.97", height="0.50"]; + Hello -> World [pos="e,35,36 35,72 35,64 35,55 35,46"]; +} diff --git a/test-plans/lcm.js b/test-plans/lcm.js new file mode 100644 index 0000000..4117b33 --- /dev/null +++ b/test-plans/lcm.js @@ -0,0 +1,77 @@ +/* Finds the lowest common multiple (LCM) of two numbers */ +function LCMCalculator(x, y) { // constructor function + var checkInt = function (x) { // inner function + if (x % 1 !== 0) { + // throw an exception + throw new TypeError(x + " is not an integer"); + } + return x; + }; + this.a = checkInt(x) + // ^ semicolons are optional + this.b = checkInt(y); +} +// The prototype of object instances created by a constructor is +// that constructor's "prototype" property. +LCMCalculator.prototype = { // object literal + // when reassigning a prototype, set the constructor property appropriately + constructor: LCMCalculator, + gcd: function () { // method that calculates the greatest common divisor + // Euclidean algorithm: + var a = Math.abs(this.a), b = Math.abs(this.b), t; + if (a < b) { + // swap variables + t = b; + b = a; + a = t; + } + while (b !== 0) { + t = b; + b = a % b; + a = t; + } + // Only need to calculate GCD once, so "redefine" this method. + // (Actually not redefinition—it's defined on the instance itself, + // so that this.gcd refers to this "redefinition" instead of + // LCMCalculator.prototype.gcd.) + // Also, 'gcd' === "gcd", this['gcd'] === this.gcd + this['gcd'] = function () { + return a; + }; + return a; + }, + // Object property names can be specified by strings delimited by + // double (") or single (') quotes. + "lcm" : function () { + // Variable names don't collide with object properties, + // e.g. |lcm| is not |this.lcm|. + // not using |this.a * this.b| to avoid FP precision issues + var lcm = this.a / this.gcd() * this.b; + // Only need to calculate lcm once, so "redefine" this method. + this.lcm = function () { + return lcm; + }; + return lcm; + }, + toString: function () { + return "LCMCalculator: a = " + this.a + ", b = " + this.b; + } +}; + +// Define generic output function; this implementation only works for +// web browsers +function output(x) { + document.body.appendChild(document.createTextNode(x)); + document.body.appendChild(document.createElement('br')); +} + +// Note: Array's map() and forEach() are defined in JavaScript 1.6. +// They are used here to demonstrate JavaScript's inherent functional nature. +// array literal + mapping function +[[25, 55], [21, 56], [22, 58], [28, 56]].map(function (pair) { + return new LCMCalculator(pair[0], pair[1]); +}).sort(function (a, b) { // sort with this comparative function + return a.lcm() - b.lcm(); +}).forEach(function (obj) { + output(obj + ", gcd = " + obj.gcd() + ", lcm = " + obj.lcm()); +}); diff --git a/test-plans/mmm-example.sh b/test-plans/mmm-example.sh new file mode 100644 index 0000000..838f04b --- /dev/null +++ b/test-plans/mmm-example.sh @@ -0,0 +1,42 @@ +#! /bin/sh +# One of the long-time standard syntaxes for outputting large amounts +#of code (or text, or HTML, or whatever) from a script (notably shell +#scripts and Perl scripts) is the here-document syntax: + +cat <<END_HTML; +<html> + <head> + <title>Test Page</title> + </head> + <body> + A test. + </body> +</html> +END_HTML + +# The 'here-doc' submode class recognizes this syntax, and can even +#guess the correct submode to use in many cases. For instance, it would +#put the above example in `html-mode', noticing the string `HTML' in the +#name of the here-document. If you use less than evocative +#here-document names, or if the submode is recognized incorrectly for +#any other reason, you can tell it explicitly what submode to use. + +cat <<END_LISP +;; String to integer conversion for arbitrary base. +(defun string-to-base-int (s base) + "Convert S to an integer by parsing it as base BASE number." + (let ((n 0)) + (while (not (string-equal s "")) + (let ((c (downcase (aref s 0)))) + (setq n (+ (* n base) + (cond ((and (>= c ?0) (<= c ?9)) + (- c ?0)) + ((and (>= c ?a) (<= c ?z)) + (- c (- ?a 10))))))) + (setq s (substring s 1))) + n)) +END_LISP + +# Local Variables: +# eval: (mmm-ify-by-class 'here-doc) +# End: diff --git a/test-plans/p1025rdb.dtsi b/test-plans/p1025rdb.dtsi new file mode 100644 index 0000000..f502564 --- /dev/null +++ b/test-plans/p1025rdb.dtsi @@ -0,0 +1,326 @@ +/* + * P1025 RDB Device Tree Source stub (no addresses or top-level ranges) + * + * Copyright 2011 Freescale Semiconductor Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +&lbc { + nor@0,0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "cfi-flash"; + reg = <0x0 0x0 0x1000000>; + bank-width = <2>; + device-width = <1>; + + partition@0 { + /* This location must not be altered */ + /* 256KB for Vitesse 7385 Switch firmware */ + reg = <0x0 0x00040000>; + label = "NOR Vitesse-7385 Firmware"; + read-only; + }; + + partition@40000 { + /* 256KB for DTB Image */ + reg = <0x00040000 0x00040000>; + label = "NOR DTB Image"; + }; + + partition@80000 { + /* 3.5 MB for Linux Kernel Image */ + reg = <0x00080000 0x00380000>; + label = "NOR Linux Kernel Image"; + }; + + partition@400000 { + /* 11MB for JFFS2 based Root file System */ + reg = <0x00400000 0x00b00000>; + label = "NOR JFFS2 Root File System"; + }; + + partition@f00000 { + /* This location must not be altered */ + /* 512KB for u-boot Bootloader Image */ + /* 512KB for u-boot Environment Variables */ + reg = <0x00f00000 0x00100000>; + label = "NOR U-Boot Image"; + read-only; + }; + }; + + nand@1,0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "fsl,p1025-fcm-nand", + "fsl,elbc-fcm-nand"; + reg = <0x1 0x0 0x40000>; + + partition@0 { + /* This location must not be altered */ + /* 1MB for u-boot Bootloader Image */ + reg = <0x0 0x00100000>; + label = "NAND U-Boot Image"; + read-only; + }; + + partition@100000 { + /* 1MB for DTB Image */ + reg = <0x00100000 0x00100000>; + label = "NAND DTB Image"; + }; + + partition@200000 { + /* 4MB for Linux Kernel Image */ + reg = <0x00200000 0x00400000>; + label = "NAND Linux Kernel Image"; + }; + + partition@600000 { + /* 4MB for Compressed Root file System Image */ + reg = <0x00600000 0x00400000>; + label = "NAND Compressed RFS Image"; + }; + + partition@a00000 { + /* 7MB for JFFS2 based Root file System */ + reg = <0x00a00000 0x00700000>; + label = "NAND JFFS2 Root File System"; + }; + + partition@1100000 { + /* 15MB for JFFS2 based Root file System */ + reg = <0x01100000 0x00f00000>; + label = "NAND Writable User area"; + }; + }; + +}; + +&soc { + i2c@3000 { + rtc@68 { + compatible = "dallas,ds1339"; + reg = <0x68>; + }; + }; + + spi@7000 { + flash@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "spansion,s25sl12801"; + reg = <0>; + spi-max-frequency = <40000000>; /* input clock */ + + partition@u-boot { + /* 512KB for u-boot Bootloader Image */ + reg = <0x0 0x00080000>; + label = "u-boot"; + read-only; + }; + + partition@dtb { + /* 512KB for DTB Image */ + reg = <0x00080000 0x00080000>; + label = "dtb"; + }; + + partition@kernel { + /* 4MB for Linux Kernel Image */ + reg = <0x00100000 0x00400000>; + label = "kernel"; + }; + + partition@fs { + /* 4MB for Compressed RFS Image */ + reg = <0x00500000 0x00400000>; + label = "file system"; + }; + + partition@jffs-fs { + /* 7MB for JFFS2 based RFS */ + reg = <0x00900000 0x00700000>; + label = "file system jffs2"; + }; + }; + }; + + usb@22000 { + phy_type = "ulpi"; + }; + + /* USB2 is shared with localbus, so it must be disabled + by default. We can't put 'status = "disabled";' here + since U-Boot doesn't clear the status property when + it enables USB2. OTOH, U-Boot does create a new node + when there isn't any. So, just comment it out. + usb@23000 { + phy_type = "ulpi"; + }; + */ + + mdio@24000 { + phy0: ethernet-phy@0 { + interrupt-parent = <&mpic>; + interrupts = <3 1>; + reg = <0x0>; + }; + + phy1: ethernet-phy@1 { + interrupt-parent = <&mpic>; + interrupts = <2 1>; + reg = <0x1>; + }; + + tbi0: tbi-phy@11 { + reg = <0x11>; + device_type = "tbi-phy"; + }; + }; + + mdio@25000 { + tbi1: tbi-phy@11 { + reg = <0x11>; + device_type = "tbi-phy"; + }; + }; + + mdio@26000 { + tbi2: tbi-phy@11 { + reg = <0x11>; + device_type = "tbi-phy"; + }; + }; + + enet0: ethernet@b0000 { + fixed-link = <1 1 1000 0 0>; + phy-connection-type = "rgmii-id"; + + }; + + enet1: ethernet@b1000 { + phy-handle = <&phy0>; + tbi-handle = <&tbi1>; + phy-connection-type = "sgmii"; + }; + + enet2: ethernet@b2000 { + phy-handle = <&phy1>; + phy-connection-type = "rgmii-id"; + }; + + par_io@e0100 { + #address-cells = <1>; + #size-cells = <1>; + reg = <0xe0100 0x60>; + ranges = <0x0 0xe0100 0x60>; + device_type = "par_io"; + num-ports = <3>; + pio1: ucc_pin@01 { + pio-map = < + /* port pin dir open_drain assignment has_irq */ + 0x1 0x13 0x1 0x0 0x1 0x0 /* QE_MUX_MDC */ + 0x1 0x14 0x3 0x0 0x1 0x0 /* QE_MUX_MDIO */ + 0x0 0x17 0x2 0x0 0x2 0x0 /* CLK12 */ + 0x0 0x18 0x2 0x0 0x1 0x0 /* CLK9 */ + 0x0 0x7 0x1 0x0 0x2 0x0 /* ENET1_TXD0_SER1_TXD0 */ + 0x0 0x9 0x1 0x0 0x2 0x0 /* ENET1_TXD1_SER1_TXD1 */ + 0x0 0xb 0x1 0x0 0x2 0x0 /* ENET1_TXD2_SER1_TXD2 */ + 0x0 0xc 0x1 0x0 0x2 0x0 /* ENET1_TXD3_SER1_TXD3 */ + 0x0 0x6 0x2 0x0 0x2 0x0 /* ENET1_RXD0_SER1_RXD0 */ + 0x0 0xa 0x2 0x0 0x2 0x0 /* ENET1_RXD1_SER1_RXD1 */ + 0x0 0xe 0x2 0x0 0x2 0x0 /* ENET1_RXD2_SER1_RXD2 */ + 0x0 0xf 0x2 0x0 0x2 0x0 /* ENET1_RXD3_SER1_RXD3 */ + 0x0 0x5 0x1 0x0 0x2 0x0 /* ENET1_TX_EN_SER1_RTS_B */ + 0x0 0xd 0x1 0x0 0x2 0x0 /* ENET1_TX_ER */ + 0x0 0x4 0x2 0x0 0x2 0x0 /* ENET1_RX_DV_SER1_CTS_B */ + 0x0 0x8 0x2 0x0 0x2 0x0 /* ENET1_RX_ER_SER1_CD_B */ + 0x0 0x11 0x2 0x0 0x2 0x0 /* ENET1_CRS */ + 0x0 0x10 0x2 0x0 0x2 0x0>; /* ENET1_COL */ + }; + + pio2: ucc_pin@02 { + pio-map = < + /* port pin dir open_drain assignment has_irq */ + 0x1 0x13 0x1 0x0 0x1 0x0 /* QE_MUX_MDC */ + 0x1 0x14 0x3 0x0 0x1 0x0 /* QE_MUX_MDIO */ + 0x1 0xb 0x2 0x0 0x1 0x0 /* CLK13 */ + 0x1 0x7 0x1 0x0 0x2 0x0 /* ENET5_TXD0_SER5_TXD0 */ + 0x1 0xa 0x1 0x0 0x2 0x0 /* ENET5_TXD1_SER5_TXD1 */ + 0x1 0x6 0x2 0x0 0x2 0x0 /* ENET5_RXD0_SER5_RXD0 */ + 0x1 0x9 0x2 0x0 0x2 0x0 /* ENET5_RXD1_SER5_RXD1 */ + 0x1 0x5 0x1 0x0 0x2 0x0 /* ENET5_TX_EN_SER5_RTS_B */ + 0x1 0x4 0x2 0x0 0x2 0x0 /* ENET5_RX_DV_SER5_CTS_B */ + 0x1 0x8 0x2 0x0 0x2 0x0>; /* ENET5_RX_ER_SER5_CD_B */ + }; + + pio3: ucc_pin@03 { + pio-map = < + /* port pin dir open_drain assignment has_irq */ + 0x0 0x16 0x2 0x0 0x2 0x0 /* SER7_CD_B*/ + 0x0 0x12 0x2 0x0 0x2 0x0 /* SER7_CTS_B*/ + 0x0 0x13 0x1 0x0 0x2 0x0 /* SER7_RTS_B*/ + 0x0 0x14 0x2 0x0 0x2 0x0 /* SER7_RXD0*/ + 0x0 0x15 0x1 0x0 0x2 0x0>; /* SER7_TXD0*/ + }; + + pio4: ucc_pin@04 { + pio-map = < + /* port pin dir open_drain assignment has_irq */ + 0x1 0x0 0x2 0x0 0x2 0x0 /* SER3_CD_B*/ + 0x0 0x1c 0x2 0x0 0x2 0x0 /* SER3_CTS_B*/ + 0x0 0x1d 0x1 0x0 0x2 0x0 /* SER3_RTS_B*/ + 0x0 0x1e 0x2 0x0 0x2 0x0 /* SER3_RXD0*/ + 0x0 0x1f 0x1 0x0 0x2 0x0>; /* SER3_TXD0*/ + }; + }; +}; + +&qe { + serial2: ucc@2600 { + device_type = "serial"; + compatible = "ucc_uart"; + port-number = <0>; + rx-clock-name = "brg6"; + tx-clock-name = "brg6"; + pio-handle = <&pio3>; + }; + + serial3: ucc@2200 { + device_type = "serial"; + compatible = "ucc_uart"; + port-number = <1>; + rx-clock-name = "brg2"; + tx-clock-name = "brg2"; + pio-handle = <&pio4>; + }; +}; diff --git a/test-plans/p1025rdb_32b.dts b/test-plans/p1025rdb_32b.dts new file mode 100644 index 0000000..a2ed628 --- /dev/null +++ b/test-plans/p1025rdb_32b.dts @@ -0,0 +1,133 @@ +/* + * P1025 RDB Device Tree Source (32-bit address map) + * + * Copyright 2011 Freescale Semiconductor Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/include/ "fsl/p1021si-pre.dtsi" +/ { + model = "fsl,P1025RDB"; + compatible = "fsl,P1025RDB"; + + memory { + device_type = "memory"; + }; + + lbc: localbus@ffe05000 { + reg = <0 0xffe05000 0 0x1000>; + + /* NOR, NAND Flashes */ + ranges = <0x0 0x0 0x0 0xef000000 0x01000000 + 0x1 0x0 0x0 0xff800000 0x00040000>; + }; + + soc: soc@ffe00000 { + ranges = <0x0 0x0 0xffe00000 0x100000>; + }; + + pci0: pcie@ffe09000 { + ranges = <0x2000000 0x0 0xe0000000 0 0xe0000000 0x0 0x20000000 + 0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>; + reg = <0 0xffe09000 0 0x1000>; + pcie@0 { + ranges = <0x2000000 0x0 0xe0000000 + 0x2000000 0x0 0xe0000000 + 0x0 0x20000000 + + 0x1000000 0x0 0x0 + 0x1000000 0x0 0x0 + 0x0 0x100000>; + }; + }; + + pci1: pcie@ffe0a000 { + reg = <0 0xffe0a000 0 0x1000>; + ranges = <0x2000000 0x0 0xe0000000 0 0xe0000000 0x0 0x20000000 + 0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>; + pcie@0 { + ranges = <0x2000000 0x0 0xe0000000 + 0x2000000 0x0 0xe0000000 + 0x0 0x20000000 + + 0x1000000 0x0 0x0 + 0x1000000 0x0 0x0 + 0x0 0x100000>; + }; + }; + + qe: qe@ffe80000 { + ranges = <0x0 0x0 0xffe80000 0x40000>; + reg = <0 0xffe80000 0 0x480>; + brg-frequency = <0>; + bus-frequency = <0>; + status = "disabled"; /* no firmware loaded */ + + enet3: ucc@2000 { + device_type = "network"; + compatible = "ucc_geth"; + rx-clock-name = "clk12"; + tx-clock-name = "clk9"; + pio-handle = <&pio1>; + phy-handle = <&qe_phy0>; + phy-connection-type = "mii"; + }; + + mdio@2120 { + qe_phy0: ethernet-phy@0 { + interrupt-parent = <&mpic>; + interrupts = <4 1 0 0>; + reg = <0x6>; + }; + qe_phy1: ethernet-phy@03 { + interrupt-parent = <&mpic>; + interrupts = <5 1 0 0>; + reg = <0x3>; + }; + tbi-phy@11 { + reg = <0x11>; + device_type = "tbi-phy"; + }; + }; + + enet4: ucc@2400 { + device_type = "network"; + compatible = "ucc_geth"; + rx-clock-name = "none"; + tx-clock-name = "clk13"; + pio-handle = <&pio2>; + phy-handle = <&qe_phy1>; + phy-connection-type = "rmii"; + }; + }; +}; + +/include/ "p1025rdb.dtsi" +/include/ "fsl/p1021si-post.dtsi" diff --git a/test-plans/strawberry.jam b/test-plans/strawberry.jam new file mode 100644 index 0000000..8d9001a --- /dev/null +++ b/test-plans/strawberry.jam @@ -0,0 +1,19 @@ +X = Bob Sue Pat ; +Y = "" "" ; +Echo Hello $(X)$(Y) ; +Y Z = test ; +Y = ; +Z = $(X)$(Y) ; + +rule MyRule +{ + Echo First arg is $(1) ; + Echo Second arg is $(2) ; + Echo Third arg is $(3) ; +} + +actions MyAction +{ + ytouch $(1) +cat $(2) >> $(1) +} diff --git a/test-plans/test.cs b/test-plans/test.cs new file mode 100644 index 0000000..641c79c --- /dev/null +++ b/test-plans/test.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; +namespace ConsoleApplication1 +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine("Gentoo is cool!"); + Console.ReadLine(); + } + } +} diff --git a/test-plans/test.csv b/test-plans/test.csv new file mode 100644 index 0000000..975519c --- /dev/null +++ b/test-plans/test.csv @@ -0,0 +1,4 @@ +Stunde;Montag;Dienstag;Mittwoch;Donnerstag;Freitag +1;Mathe;Deutsch;Englisch;Mathe;Kunst +2;Sport;Französisch;Geschichte;Sport;Geschichte +3;Sport;"Religion ev;kath";Kunst;Deutsch;Kunst diff --git a/test-plans/test.invalid.xml b/test-plans/test.invalid.xml new file mode 100644 index 0000000..bdf6a2c --- /dev/null +++ b/test-plans/test.invalid.xml @@ -0,0 +1,8 @@ +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <title>An invalid document</title> + </head> + <body> + <p>This XHTML document is <span class="#foo">invalid</span>.</p> + </body> +</html> diff --git a/test-plans/test.m b/test-plans/test.m new file mode 100644 index 0000000..d0cc40e --- /dev/null +++ b/test-plans/test.m @@ -0,0 +1,4 @@ +function a = double(a) + for i = 1:length(a), a(i) = a(i) + a(i); end + +clear b; tic; for i = 1:10^5, b(i) = a(i) + a(i); end, toc
\ No newline at end of file diff --git a/test-plans/test.muse b/test-plans/test.muse new file mode 100644 index 0000000..cf03fad --- /dev/null +++ b/test-plans/test.muse @@ -0,0 +1,82 @@ +Separate paragraphs in Muse must be separate by a blank line. + +For example, the input text used for this section is: + +* First level + +** Second level + +*** Third level + + -- - + +*emphasis* +**strong emphasis** +***very strong emphasis*** +_underlined_ +=verbatim and monospace= + +Footnote test [1] + +> A line of Emacs verse; +> forgive its being so terse. + +<verse> +A line of Emacs verse; + forgive its being so terse. +</verse> + +You are reading the +<literal style="html">HTML</literal> +<literal style="pdf">PDF</literal> +<literal style="info">Info</literal> +version of this document. + + - bullet item one + - bullet item two + + 1. Enumerated item one + 2. Enumerated item two + +Term1 :: A definition one + +Term2 :: A definition two + + - Level 1, bullet item one + 1. Level 2, enum item one + 2. Level 2, enum item two + - Level 1, bullet item two + +Double bars || Separate header fields + + Single bars | Separate body fields + Here are more | body fields + + Triple bars ||| Separate footer fields + +| Single bars | Separate body fields | +| Here are more | body fields | + +Made with [[/usr/share/pixmaps/emacs.png]] GNU Emacs on Gentoo Linux. + +Muse can be downloaded [[http://download.gna.org/muse-el/][here]], or at +[[http://download.gna.org/muse-el/]]. + +<src lang="c"> +#include <stdlib.h> + +char *unused; + +int main (int argc, char *argv[]) +{ + puts("Hello, world!\n"); +} +</src> + +<lisp markup="example"> +(concat "Insert" " me") +</lisp> + +Footnotes: +[1] Test + diff --git a/test-plans/test.sml b/test-plans/test.sml new file mode 100644 index 0000000..3ffa4ad --- /dev/null +++ b/test-plans/test.sml @@ -0,0 +1,2 @@ +- if true then 0 else 1; +val it = 0 : int diff --git a/test-plans/test.sql b/test-plans/test.sql new file mode 100644 index 0000000..7cc7552 --- /dev/null +++ b/test-plans/test.sql @@ -0,0 +1,6 @@ +SELECT [DISTINCT] ''Auswahlliste'' +FROM ''Quelle'' +WHERE ''Where-Klausel'' +[GROUP BY (''Group-by-Attribut'')+ +[HAVING ''Having-Klausel'']] +[ORDER BY (''Sortierungsattribut'' [ASC|DESC])+]; diff --git a/test-plans/test.valid.xml b/test-plans/test.valid.xml new file mode 100644 index 0000000..56a1280 --- /dev/null +++ b/test-plans/test.valid.xml @@ -0,0 +1,8 @@ +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <title>A valid document</title> + </head> + <body> + <p>This is a valid, albeit boring, XHTML document.</p> + </body> +</html> diff --git a/test-plans/test.xsl b/test-plans/test.xsl new file mode 100644 index 0000000..c45c367 --- /dev/null +++ b/test-plans/test.xsl @@ -0,0 +1,24 @@ +<?xml-version="1.0"?> + +<?xml-stylesheet type="text/xsl" href="Autoren.xsl"?> + + <Personen> + + <Autor ID="1"> <!-- Hier steht ein Kommentar. --> + + <Vorname>Frank</Vorname> + + <Nachname>Mueller</Nachname> + + </Autor> + + <Autor ID="2"> + + <Vorname>Stefan</Vorname> + + <Nachname>Maier</Nachname> + + </Autor> + +</Personen> + diff --git a/test-plans/test_suite.cfg b/test-plans/test_suite.cfg new file mode 100644 index 0000000..adbf551 --- /dev/null +++ b/test-plans/test_suite.cfg @@ -0,0 +1,228 @@ +# +# nagios-mode test suite. +# +# Copyright Michael Orlitzky +# +# http://michael.orlitzky.com/ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# http://www.fsf.org/licensing/licenses/gpl.html +# + +Test 1: Comments should be colored correctly. +# First comment form. +; Second comment form. + ; A comment not starting at the beginning of a line. + # And the second form of the above. +How about # a comment that starts after some non-comment text? + + +Test 2: Directives, specials, macros, definitions, and strings + within comments should appear as part of the comment. +# contacts is a directive. +# use, name, and register are specials. +# $USER1$ is an example of a macro. +# and define host is one of the possible definitions. +# Heck, let's try "strings" while we're at it. + + +Test 3: The standard "define host" below should be function-name-faced. +define host { +} + + +Test 4: The "define host" should be colored, but the braces *should not* be. +define host{ +} + + +Test 5: Multiple spaces before the brace. +define host { +} + + +Test 6: Closing brace on the same line. +define host {} + + +Test 7: Directive coloring should work at the beginning of a line. +contacts + + +Test 8: Directive coloring should work after any number of spaces. + contacts + + +Test 9: Directive coloring should work after a tab. + contacts + + +Test 10: Directives should not be colored in the middle of sentences. +Such as contacts in the middle of a sentence. + + +Test 11: Directives should not be colored at the end of a line. +For example, contacts + + +Test 12: Directives should only be colored when they are stand-alone + words. Therefore, the following should *not* be colored. +example-contacts +example_contacts +contacts-test +contacts_test +test-contacts-example +test_contacts_example + + +Test 13: Definitions must be stand-alone as well. The following + should *not* be colored. +undefine host +undefine host{ } +define-host +define_host +-define host- +_undefine_host_ + + +Test 14: Text inside of a open/close brace pair should be indented + by default. +{ + This should be indented. +} + +define host { + As should this. +} + + +Test 15: Braces within comments should appear as part of the comment. +# For { example }. +; { Ditto } + + +Test 16: Comments (and closing braces) that come after an curly + brace should all be comment-colored. +define host { # Everything hereafter is a { comment }. +} ; As well as here {}. + + +Test 17: Macros should be constant-faced under normal circumstances. +$USER1$ +$USER1$ $USER2$ +$ADMINEMAIL$ $ADMINPAGER$ + + +Test 18: Macros should appear constant-faced even when they don't + occur along a word boundary. +$USER1$=something +$ADMINPAGER$="string" +$USER1$=$USER2$ + + +Test 19: Macros within strings appear as part of the string +"I'm unsure if string $USER1$ interpolation is possible." + + +Test 20: Macros can occur within a directive/special value. +define host { + name $USER1$ + contacts $ADMINPAGER$ + friday I'm $USER1$ love. +} + + +Test 21: Directives that occur as a special value should + be neither special- nor directive-faced. +define host { + name contacts + use monday +} + + +Test 22: Directives that occur as directive values should + not be directive-faced. +define host { + monday tuesday wednesday thursday friday +} + + +Test 23: Specials that occur as special values should + not be special-faced. +define host { + use register name +} + + +Test 24: Specials that occur as a directive value should + be neither special- nor directive-faced. +define host { + contacts name + monday use +} + + +Test 25: Definitions should work when not at the beginning + of a line. + define service {} + + +Test 26: Definitions that, + + a) End with a curly brace followed by a newline + b) Have a special as the first entry + + should be colored properly. + +define service{ + use whatever +} + + +Test 27: Comment characters within strings should be ignored, + that is, treated like strings. +"Here comes a #comment" +"And the ;second form" + + +Test 28: Strings within comments should be ignored as well. +# The "string" should be comment-faced. + + +Test 29: Text between two strings should not be string-faced. +"String1" between "String2" + +Test 30: The ARG0 and USER0 macros don't exist. +$ARG0$ +$USER0$ + +Test 31: Commented opening braces should not cause indentation. +# { +This line should not be indented. +;{ +Neither should this line. + +Test 32: Commented closing braces should not close a block. +define host { + This is indented. + # This is just a comment } + So this should be indented too. +} +But not this. + +Test 33: Double opening/closing braces shouldn't cause things + to go haywire. +define host {# { + #{}}}}}{}{{}}}{{;{}{}{} + Still normal indentation. +}#{}}}}}}}{{{{{{{{{{{{{{{ +Here too. diff --git a/test-plans/text.ml b/test-plans/text.ml new file mode 100644 index 0000000..0001ae7 --- /dev/null +++ b/test-plans/text.ml @@ -0,0 +1,55 @@ +(***********************************************************************) +(* *) +(* MLTk, Tcl/Tk interface of Objective Caml *) +(* *) +(* Francois Rouaix, Francois Pessaux, Jun Furuse and Pierre Weis *) +(* projet Cristal, INRIA Rocquencourt *) +(* Jacques Garrigue, Kyoto University RIMS *) +(* *) +(* Copyright 2002 Institut National de Recherche en Informatique et *) +(* en Automatique and Kyoto University. All rights reserved. *) +(* This file is distributed under the terms of the GNU Library *) +(* General Public License, with the special exception on linking *) +(* described in file LICENSE found in the Objective Caml source tree. *) +(* *) +(***********************************************************************) +open Tk + +let top = opentk () + +let scroll_link sb tx = + Text.configure tx [YScrollCommand (Scrollbar.set sb)]; + Scrollbar.configure sb [ScrollCommand (Text.yview tx)] + +let f = Frame.create top [] +let text = Text.create f [] +let scrollbar = Scrollbar.create f [] + +let buffer = ref "" + +let kill () = + buffer := + Text.get text (TextIndex (Insert, [])) + (TextIndex (Insert, [LineEnd])); + Text.delete text (TextIndex (Insert, [])) + (TextIndex (Insert, [LineEnd])) +;; + +let yank () = + Text.insert text (TextIndex (Insert, [])) !buffer [] + +let _ = bind text [[Control], KeyPressDetail "y"] (BindSet ([], fun _ -> + yank () )) +;; +let _ = bind text [[Control], KeyPressDetail "k"] (BindSet ([], fun _ -> + kill () )) +;; + +let _ = + scroll_link scrollbar text; + + pack [text;f][]; + pack [f][]; + mainLoop () +;; + diff --git a/test-plans/use_flag.h b/test-plans/use_flag.h new file mode 100644 index 0000000..4b496b3 --- /dev/null +++ b/test-plans/use_flag.h @@ -0,0 +1,174 @@ +/* + * Copyright (C) 2006 Matthias Langer <mlangc@gmx.at> + * + * This file is part of Gatt - a Gentoo tool for arch testers. + * + * Gatt is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef H_GATT_USE_FLAG +#define H_GATT_USE_FLAG +#include "src/package.h" +#include <boost/logic/tribool.hpp> +namespace Gatt { + +/** This class represents an USE flag. + * @note + * This class should only be used when it makes sense to activate/deactivate the flag, or + * more detailed information about the USE flag is needed. Otherwise, a plain std::string + * may be better suited.*/ +class UseFlag : boost::equality_comparable<UseFlag> +{ + public: + /** Constructs a new UseFlag. + * @param[in] name + * the name of the USE flag. + * @param[in] active + * wether the flag should be activated or deactivated. + * @throw Gatt::InvalidUseFlag + * if the USE flag does not exist.*/ + UseFlag(const std::string& name, bool active); + + /** Constructs a UseFlag from a string like "-gtk". + * @throw Gatt::InvalidUseFlag + * if the USE flag doesn't exist.*/ + explicit UseFlag(const std::string& str); + + /** Returns the name of the USE flag like "gtk".*/ + const std::string& getName() const { return _name; } + + /** Converts the object to a string, like "-gtk".*/ + const std::string toString() const + { return _active ? _name : ("-" + _name); } + + /** Activates/deactivates the USE flag.*/ + void activate(bool setting) { _active = setting; } + + /** Returns true if an only if the USE flag is active.*/ + bool isActive() const { return _active; } + + /** Returns true for global USE flags, false otherwise.*/ + bool isGlobal() const { return _global; } + + /** Returns true if and only if this USE flag is masked. + * @attention + * USE flags may be masked on a per package basis. When in doubt, use + * UseFlag::isMaskedFor(const Package&) const.*/ + bool isMasked() const + { return parseUseMaskForce(_useMaskList); } + + /** Returns true if and only of this USE flag is masked for a given package.*/ + bool isMaskedFor(const Package& package) const + { return parseUseMaskForce(_useMaskList, package); } + + /** Returns true if this USE flag is forces. + * @attention + * USE flags may be forced on a per package basis. When in doubt, use + * UseFlag::isForcedFor(const Package&) const.*/ + bool isForced() const + { + if(isMasked()) + return false; + return parseUseMaskForce(_useForceList); + } + + /** Returns true if and only if this USE flag is forced for a given package.*/ + bool isForcedFor(const Package& package) const + { + if(isMaskedFor(package)) + return false; + return parseUseMaskForce(_useForceList, package); + } + + /** Returns a description for the USE flag.*/ + const std::string& getDescription() const { return _desc; } + + /** Returns true if and only if this flag is in IUSE for the given package.*/ + bool isValidFor(const Package& package) const; + + /** Returns true if and only if this flag is a USE_EXPAND type USE flag. + * @see http://devmanual.gentoo.org/general-concepts/use-flags/index.html#local-and-global-use-flags*/ + bool isFromUseExpand() const { return _useExpand; } + + /** Returns true if and only if this and other refer to the same flag. + * @attention + * This method behaves differently from operator==(const UseFlag&) as + * it does only compares the names of the flags, but not their state.*/ + bool sameFlag(const UseFlag& other) const + { return _name == other._name; } + + /** Compares to UseFlag objects for equality.*/ + bool operator==(const UseFlag& other) const + { + return + (_name == other._name) && + (_active == other._active); + } + + private: + struct UseMaskForce + { + UseMaskForce() : plain(boost::logic::indeterminate) {} + + //represents the relevant information from use.(mask|force). + boost::logic::tribool plain; + + //represents the relevant information from package.use.(mask|force) + // dep atom state + // | | + std::list<std::pair<std::string, bool> > perPackage; + + bool relevant() const + { return (!boost::logic::indeterminate(plain)) || (!perPackage.empty()); } + }; + + + static bool hasExpectedFormat(const std::string& name); + static std::string grabUseDescGlobal(const std::string& name); + static std::string grabUseDescLocal(const std::string& name); + static bool grabUseDescFromFile(const std::string& name, const std::string& filename, std::string& desc); + + /*!@attention + * This method throws if no description can be found and useExpand should be upper case.*/ + static std::string grabUseDescForUseExpand(const std::string& useExpand, const std::string& name); + + void initFromName(); + void initUseLists(); + + //it is perfectly ok to pass a filename for a file that does not exist; in this case the + //method will return boost::logic::indeterminate + boost::logic::tribool stateFromUseMaskOrForceFile(const std::string& filename) const; + + //it is ok to pass a filename that doesn't reference an exsiting file + void relevantLinesFromPackageUseMaskOrForceFile( + const std::string& filename, + std::list<std::pair<std::string, bool> >& perPackage) const; + + static std::string fullFlagName(const std::string& useExpandVar, const std::string& name); + static std::string extractUseExpandFromFlagName(const std::string& flagName); + + static bool parseUseMaskForce(const std::list<UseMaskForce>& useMaskForceList); + static bool parseUseMaskForce(const std::list<UseMaskForce>& useMaskForceList, const Package& package); + + std::string _name; + bool _active; + std::string _desc; + bool _global; + bool _useExpand; + + std::list<UseMaskForce> _useMaskList; + std::list<UseMaskForce> _useForceList; +}; +}//namespace +#endif |