Novlinio

En komputado novlinio, ankaŭ konata kiel linifinilo (aŭ EOL, laŭ la angla End-Of-Line), estas speciala komando, finanta la kurantan tekstan linion kaj komencanta la linion sekvan. En la klavaro de elektra tajpilo ĝin plenumas aparta klavo ⏎ (eventuale kun la angla surskribo Enter, «Enigu», aŭ Return, «(Ĉaret)Reveno»). Ĉe komunikado per lineo aŭ en teksta dosiero ĝin kodas unu aŭ pluraj stirsignoj, malsamaj en diversaj operaciumoj (tio povas kaŭzi komplikaĵojn ĉe transporto de dosieroj inter malsamaj komputaj sistemoj).
La stirsignoj uzataj por kodi novlinion estiĝis en la malnova epoko de tiaj malnovaj aparatoj (precipe teletajpiloj). En tiuj aparatoj transiro al nova linio konsistis el du agoj:
- vertikala liniavanco de la papero (Askie
LF
= 10 = 128 = 0A16), - horizontala ĉaretrevenigo al la komenca pozicio ene de linio (Askie
CR
= 13 = 158 = 0D16).
Ekzistis ankaŭ aliaj aparatoj, kies funkciadon spegulas la malnova kodo EBCDIC, kiuj krome disponigis kombinitan stirkodon NEL
(angle NExt Line, NovLinio, en EBCDIC 21 = 1516). Tamen reale la modernaj komputaj sistemoj uzas la stirsignojn Askiajn (kvankam diversmaniere).
- La Majkrosoftaj operaciumoj (MS-DOS, Vindozo) restas ĉe la antikva kombino CR+LF (ĉaretreveno + liniavanco). La ordo estas esenca kaj estas heredaĵo de la elektromeĥanika epoko senbufra: ĉaretreveno estis ago longa, la sendependa liniavanco okazis paralele kaj aldonis neniom da tempo.
- La klasikaj Makintoŝoj (ĝis la transiro al la Uniksa Mac OS X) realigis novlinion per nura CR (ĉaretrevenigo) — supozeble ĉar en iuj malnovaj klavaroj tiun kodon sendis la klavo Enter (la modernaj klavaroj sendas aparatan klavkodon senrilatan al Askio, la logikan klavkodon atribuas la operaciumo). Ekde Mac OS X la Makintoŝoj aliĝis al la tradicio Uniksa.
- En Uniksoj novlinion realigas la liniavanco LF. Oni preferis liniavancon, ĉar ĉe teletajpiloj ĉaretrevenigo estis utila por surprintado (ebliganta grasigon aŭ almeton de diakritoj).
La tekstaj redaktiloj plejparte disponigas rimedojn por transkodi linifinilojn. Krome ekzistas tiucelaj programetoj, ekz‑e la Uniksaj dos2unix
kaj unix2dos
(resp. «el DOS al Unix» kaj «el Unix al DOS»).
En la programlingvo C, firme ligita kun realigo de Unikso, la koncernaj stirsignoj ricevis la simbolan prezenton per \n
por liniavanco LF, kaj \r
por ĉaretrevenigo CR — kiel en la notora
printf("Saluton, mondo!\n");
Tiun notacion adoptis multaj aliaj programlingvoj, sekve de kio la signifo de \n
ŝanĝiĝis: nun en multaj okazoj ĝi simbolas ne konkretan stirsignon LF, sed la abstraktan komandon «Novlinio» (simile al la EBCDIC-a NEL
). Ekz‑e en la Vindozaj Python kaj PowerShell:
PS C:\Users\NN> python -c "print('Unu\nDu')" > t.txt
PS C:\Users\NN> type t.txt
Unu
Du
PS C:\Users\NN> format-hex t.txt
[...]
00000000 FF FE 55 00 6E 00 75 00 0D 00 0A 00 44 00 75 00 .þU.n.u.....D.u.
00000010 0D 00 0A 00 ....PS C:\Users\NN>
La bita elŝuto per format-hex
atestas, ke la simbolo \n
(kiu en Unikso transformiĝas en unu bajton 0A16) en Vindozo malvolviĝas en kvar bajtojn
0D 00 0A 00
(t.e. la kombino CR+LF
en la Vindoza kodoprezento UTF-16) kontraste al unu sola 0A
en Unikso kaj UTF-8.
Ĉar Unikodo devas kovri ĉiujn historie gravajn signarojn, tial ĉe la signonumero U+0085
ĝi entenas ankaŭ la stirsignon NEL
, NExt Line, heredaĵon de EBCDIC; kaj eĉ grafikan simbolon  (U+2424) por paroli pri la NovLinio sen kaŭzi ĝian efikon. Tamen fakte ni ne konas programaron kiu laŭe ĝin traktus. Iuj programoj ĝin simple ignoras; aliaj printas ĝin kiel spaceton; triaj plendas pri «malbona unikodaĵo».