30-letni błąd w Notatniku już naprawiony, wreszcie otworzysz linuksowe pliki

Strona główna Aktualności
Notatnik i ołówek z depositphotos
Notatnik i ołówek z depositphotos

O autorze

Programiści Microsoftu naprawili błąd w Notatniku – podstawowym edytorze tekstowym Windowsa. Błąd, który obecny był w nim od samego początku historii programu. Chodzi o niezdolność poprawnego odczytania plików tekstowych wygenerowanych na maszynach uniksowych, co w praktyce czyniło Notatnik narzędziem bezużytecznym do jakiejkolwiek poważnej pracy. Najnowsza testowa wersja Windowsa 10 (build 17661) zawiera już poprawiony Notatnik.

Można się śmiać z Notatnika, można zawsze znaleźć lepsze edytory (np. Notepad++), ale jest on czymś w rodzaju uniksowego vi – mamy pewność, że zawsze będzie pod ręką. Jednak w przeciwieństwie do vi, przez ostatnie 30 lat Notatnik nie potrafił poprawnie wyświetlić plików tekstowych stworzonych na Linuksie, macOS-ie i innych systemach uniksowych.

Wszystko ze względu na różnice w standardach znaków przechodzenia do nowej linii (EOL). Uniksowe systemy (a także Amiga OS i RISC OS) od prastarych czasów używają do tego znaku Line Feed (LF), zapisywanego też ciągiem znaków \n. Z kolei Windows robi to samo co MS-DOS, CP/M czy VMS – używa sekwencji znaków Carriage Return Line Feed (CR LF), zapisywanej jako \r\n.

Dlaczego twórcy Windowsa tak bardzo uparli się na znak przenoszący karetkę drukarki czy kursor ekranowy do pierwszego miejsca w linii? To jedynie zaszłość historyczna: jeszcze w czasach pierwszych telegrafów ze względów praktycznych rozdzielono te znaki. Pozostawienie tego w Windowsie pozwoliło bezproblemowo odczytywać pliki stworzone w MS-DOS-ie. Niestety, jak to często z Microsoftem bywało, zapomniano o reszcie świata. Notatnik, „rozumiejąc” jedynie sekwencję \r\n jako sposób przejścia do nowej linii zamieniał zapisane w uniksowych systemach pliki w śmietnik – dla niego wszystko było jedną linią.

Po 30 latach i wprowadzeniu na dobre linuksowego podsystemu do Windowsa, a linuksowych dystrybucji do Microsoft Store, firma z Redmond naprawia swoje niedopatrzenie. Wreszcie będzie można swobodnie odczytywać pliki z systemów, w których przejście do nowej linii to LF. Póki co dostępne jest to tylko w kompilacjach insiderskich. W stabilnych Windowsach zobaczymy to najprawdopodobniej w jesiennej aktualizacji „dziesiątki”, rozwijanej obecnie jako Redstone 5. Dzięki temu Notatnik będzie nadawał się do poważnej pracy dla każdego, kto musi np. otworzyć plik konfiguracyjny na linuksowym serwerze.

Jeśli komuś ta zmiana się nie podoba, będzie mógł zablokować ją w Rejestrze, we wpisie HKEY_CURRENT_USER\Software\Microsoft\Notepad. Wartości fPasteOriginalEOL i fWindowsOnlyEOL sterują odpowiednio konwersją znaków końca linii przy wklejaniu tekstu oraz wstawianiu znaku końca linii naciśnięciem przycisku Enter. Po ustawieniu ich na „0”, Notatnik przejdzie w tradycyjny tryb pracy i dalej będzie źle wyświetlał uniksowe pliki.

Ciekawostką może być to, jak do sprawy podeszło Apple – w klasycznym Mac OS-ie znakiem końca linii było po prostu Carriage Return (CR), czyli \r. Z tego standardu korzystała też większość komputerów 8-bitowych. Jednak tworząc Mac OS-a X, zdecydowano się trzymać uniksowego standardu i zmieniono znak końca linii na LF (\n). Możliwość poprawnego otwierania plików tekstowych ze starego systemu została zachowana na poziomie edytora tekstowego TextEdit (stworzonego jeszcze dla systemu NeXTSTEP, pradziadka nowych systemów Apple’a). Daleko bardziej zaawansowany od Notatnika, pozwalał poprawnie otwierać pliki tekstowe, rozpoznając stosowany w nich standard znaków końca linii.

© dobreprogramy