[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