30‑letni błąd w Notatniku już naprawiony, wreszcie otworzysz linuksowe pliki
Programiści Microsoftu naprawili błąd w Notatniku –podstawowym edytorze tekstowym Windowsa. Błąd, który obecny był wnim od samego początku historii programu. Chodzi o niezdolnośćpoprawnego odczytania plików tekstowych wygenerowanych na maszynachuniksowych, co w praktyce czyniło Notatnik narzędziem bezużytecznymdo jakiejkolwiek poważnej pracy. Najnowsza testowa wersja Windowsa10 (build 17661) zawiera już poprawiony Notatnik.
09.05.2018 11:10
Można się śmiać z Notatnika, można zawsze znaleźć lepszeedytory (np. Notepad++), ale jest on czymś w rodzaju uniksowego vi –mamy pewność, że zawsze będzie pod ręką. Jednak wprzeciwień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ówprzechodzenia do nowej linii (EOL). Uniksowe systemy (a także AmigaOS 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 tosamo co MS-DOS, CP/M czy VMS – używa sekwencji znaków CarriageReturn Line Feed (CR LF), zapisywanej jako \r\n.
Dlaczego twórcy Windowsa tak bardzo uparli się na znakprzenoszący karetkę drukarki czy kursor ekranowy do pierwszegomiejsca w linii? To jedynie zaszłość historyczna: jeszcze wczasach pierwszych telegrafów ze względów praktycznych rozdzielonote znaki. Pozostawienie tego w Windowsie pozwoliło bezproblemowoodczytywać pliki stworzone w MS-DOS-ie. Niestety, jak to często zMicrosoftem bywało, zapomniano o reszcie świata. Notatnik,„rozumiejąc” jedynie sekwencję \r\n jako sposób przejścia donowej 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 doWindowsa, a linuksowych dystrybucji do Microsoft Store, firma zRedmond naprawia swoje niedopatrzenie. Wreszcie będzie możnaswobodnie odczytywać pliki z systemów, w których przejście donowej linii to LF. Póki co dostępne jest to tylko w kompilacjachinsiderskich. W stabilnych Windowsach zobaczymy to najprawdopodobniejw jesiennej aktualizacji „dziesiątki”, rozwijanej obecnie jakoRedstone 5. Dzięki temu Notatnik będzie nadawał się do poważnejpracy dla każdego, kto musi np. otworzyć plik konfiguracyjny nalinuksowym serwerze.
Jeśli komuś ta zmiana się nie podoba, będzie mógł zablokowaćją w Rejestrze, we wpisieHKEY_CURRENT_USER\Software\Microsoft\Notepad. WartościfPasteOriginalEOL i fWindowsOnlyEOL sterują odpowiednio konwersjąznaków końca linii przy wklejaniu tekstu oraz wstawianiu znakukoń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 – wklasycznym Mac OS-ie znakiem końca linii było po prostu CarriageReturn (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 zestarego systemu została zachowana na poziomie edytora tekstowegoTextEdit (stworzonego jeszcze dla systemu NeXTSTEP, pradziadka nowychsystemów Apple’a). Daleko bardziej zaawansowany od Notatnika,pozwalał poprawnie otwierać pliki tekstowe, rozpoznając stosowanyw nich standard znaków końca linii.