[BSD] Java érdekesség...
Zahemszky Gábor
Gabor at Zahemszky.HU
2006. Nov. 7., K, 20:12:26 CET
>>> $ cat /etc/printcap
>>> # This file was automatically generated by cupsd(8) from the
>>> # /usr/local/etc/cups/printers.conf file. All changes to this file
>>> # will be lost.
>>> IR2200|IR2200:rm=simonyi.sulinet.hu:rp=IR2200:
>>> lp|IR2200:rm=simonyi.sulinet.hu:rp=lp:
> A név nem az első "oszlop"? Másrészt miért látja jól minden program,
> és a Linux-Sun-Java 1.4.2, és miért nem az 1.5.0?
No ezt nem tudom, sötétben tapogatózom, de egy _rendes_ printcap nem így
néz ki.
> A CUPS úgyis felülírja, ha belenyúlok. De miképp kellene ennek
> kinéznie?
man 5 printcap termcap - lévén az első szintaktika ügyben elirányít a
másodikhoz :-)
a printcap (és minden egyéb *cap fájl) felépítése:
névmező|sok|másik|névvel:tetszőleges:jellemzőket:tetszőleges:sorrendben:\
:tartalmazó:egymástól:kettősponttal:elválasztott:\
:mezők:opcionálisan:több:sorban:de:ekkor:a:sorok:\
:végére:kell:a:repjel:
Azaz:
Az első (névmező) mező kivételével minden mezőben van:
- egy logikai változó; vagy akármi, vagy akármi@ formában (on/off)
- egy sztring változó akármi=érték formában (esetleg akármi= , ami azt
jelenti, hogy üres sztring az értéke)
- vagy pedig egy numerikus változó név#érték formában
Hibás szintaxisnál szó nélkül lenyeli a marhaságot, és veszi az
alpértelmezést; pl: pl#80 azt jelenti, hogy 80 sor fér egy lapra, míg a
hibás pl=80 azt, hogy az alapértelmezett 66 sor (mert a pl _nem_
sztringváltozó, tehát a bejegyzés tulajdonképp nincs is ott)
Végül pedig a névmező tetszőleges számú, | -jellel elválasztott nevet
rendel az adott rekordhoz, amit úgy szoktak aposztrofálni, hogy az első
név az általában használt, a többi becenév (lehetőleg kisbetűsen), végül
az utolsó egy névként általában nem használt leírás, pl ez:
ps|lp|Ez az asztalomon allo HP CLJ2500tn:\
:lp=9100 at 1.2.3.4:\
:sd=/var/spool/lpd/ps:\
:lf=/var/spool/lpd/ps/log:\
:af=/var/spool/lpd/ps/acct:\
:mx#0:\
:tr=^d:\
:sh:
még a leírásnak kinéző izé is név. Egy példa, egy apsfilter által
használt bejegyzés eleje:
hp|HPCLJ2500tn|PS;r=600x600;q=medium;c=full;p=a4;m=auto:
ebből bizony a PS;blablabla is egy nyomtató _név_, más kérdés, hogy ezt
így nem használják, hanem csomó huncutságot jelez magának az apsfilter.
És mellesleg él az a trükk, hogy amelyik nyomtatónak van olyan neve
(esetleg olyan neve is), hogy "lp", az a default nyomtató.
Szóval a fentiek alapján az a bejegyzés legalábbis kérdéses. A baj, hogy
nem tudom, hogy a cups mit csinál vele - sose kellett használnom -; és
azt se tudom, hogy a problémádhoz ennek van-e valami köze.
Zahy < Gabor at Zahemszky dot HU >
--
#!/bin/ksh
Z='21N16I25C25E30, 40M30E33E25T15U!';IFS=' ABCDEFGHIJKLMNOPQRSTUVWXYZ
';set -- $Z;for i;{ [[ $i = ? ]]&&print $i&&break;[[ $i = ???
]]&&j=$i&&i=${i%?};typeset -i40 i=8#$i;print -n ${i#???};[[ "$j" = ???
]]&&print -n "${j#??} "&&j=;typeset +i i;};IFS=' 0123456789 ';set --
$Z;for i;{ [[ $i = , ]]&&i=2;[[ $i = ?? ]]||typeset -l i;j="$j
$i";typeset +l i;};print "$j"
További információk a(z) BSD levelezőlistáról