Saltu al enhavo

Novlinio

El Vikipedio, la libera enciklopedio

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».

Vidu ankaŭ

[redakti | redakti fonton]