xvii
32.17.1 Indentation Primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
32.17.2 Indentation Controlled by Major Mode . . . . . . . . . . . . . . . . 675
32.17.3 Indenting an Entire Region . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
32.17.4 Indentation Relative to Previous Lines . . . . . . . . . . . . . . . . 677
32.17.5 Adjustable “Tab Stops” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
32.17.6 Indentation-Based Motion Commands . . . . . . . . . . . . . . . . . 678
32.18 Case Changes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
32.19 Text Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
32.19.1 Examining Text Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
32.19.2 Changing Text Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
32.19.3 Text Property Search Functions . . . . . . . . . . . . . . . . . . . . . . . 683
32.19.4 Properties with Special Meanings . . . . . . . . . . . . . . . . . . . . . 685
32.19.5 Formatted Text Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
32.19.6 Stickiness of Text Properties . . . . . . . . . . . . . . . . . . . . . . . . . . 691
32.19.7 Lazy Computation of Text Properties . . . . . . . . . . . . . . . . . 692
32.19.8 Defining Clickable Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693
32.19.9 Defining and Using Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695
32.19.10 Why Text Properties are not Intervals . . . . . . . . . . . . . . . 697
32.20 Substituting for a Character Code . . . . . . . . . . . . . . . . . . . . . . . . . 698
32.21 Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698
32.22 Transposition of Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700
32.23 Base 64 Encoding. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700
32.24 Checksum/Hash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701
32.25 Parsing HTML and XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701
32.26 Atomic Change Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702
32.27 Change Hooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
33 Non-ASCII Characters. . . . . . . . . . . . . . . . . . . . . . 705
33.1 Text Representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705
33.2 Converting Text Representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706
33.3 Selecting a Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707
33.4 Character Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
33.5 Character Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709
33.6 Character Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
33.7 Scanning for Character Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
33.8 Translation of Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
33.9 Coding Systems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
33.9.1 Basic Concepts of Coding Systems . . . . . . . . . . . . . . . . . . . . . 716
33.9.2 Encoding and I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
33.9.3 Coding Systems in Lisp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718
33.9.4 User-Chosen Coding Systems. . . . . . . . . . . . . . . . . . . . . . . . . . . 721
33.9.5 Default Coding Systems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
33.9.6 Specifying a Coding System for One Operation . . . . . . . . . 725
33.9.7 Explicit Encoding and Decoding . . . . . . . . . . . . . . . . . . . . . . . 726
33.9.8 Terminal I/O Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
33.9.9 MS-DOS File Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
33.10 Input Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729
33.11 Locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730