xvii
31.17.1 Indentation Primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
31.17.2 Indentation Controlled by Major Mode . . . . . . . . . . . . . . . . 685
31.17.3 Indenting an Entire Region . . . . . . . . . . . . . . . . . . . . . . . . . . . 686
31.17.4 Indentation Relative to Previous Lines . . . . . . . . . . . . . . . . 687
31.17.5 Adjustable “Tab Stops” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688
31.17.6 Indentation-Based Motion Commands . . . . . . . . . . . . . . . . . 688
31.18 Case Changes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689
31.19 Text Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
31.19.1 Examining Text Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
31.19.2 Changing Text Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692
31.19.3 Text Property Search Functions . . . . . . . . . . . . . . . . . . . . . . . 694
31.19.4 Properties with Special Meanings . . . . . . . . . . . . . . . . . . . . . 696
31.19.5 Formatted Text Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701
31.19.6 Stickiness of Text Properties . . . . . . . . . . . . . . . . . . . . . . . . . . 702
31.19.7 Lazy Computation of Text Properties . . . . . . . . . . . . . . . . . 703
31.19.8 Defining Clickable Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
31.19.9 Defining and Using Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706
31.19.10 Why Text Properties are not Intervals . . . . . . . . . . . . . . . 708
31.20 Substituting for a Character Code . . . . . . . . . . . . . . . . . . . . . . . . . 708
31.21 Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709
31.22 Transposition of Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711
31.23 Dealing With Compressed Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711
31.24 Base 64 Encoding. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711
31.25 Checksum/Hash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
31.26 Parsing HTML and XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
31.27 Atomic Change Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
31.28 Change Hooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
32 Non-ASCII Characters. . . . . . . . . . . . . . . . . . . . . . 717
32.1 Text Representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
32.2 Disabling Multibyte Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718
32.3 Converting Text Representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
32.4 Selecting a Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
32.5 Character Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
32.6 Character Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
32.7 Character Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725
32.8 Scanning for Character Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
32.9 Translation of Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727
32.10 Coding Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
32.10.1 Basic Concepts of Coding Systems . . . . . . . . . . . . . . . . . . . . 728
32.10.2 Encoding and I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730
32.10.3 Coding Systems in Lisp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
32.10.4 User-Chosen Coding Systems . . . . . . . . . . . . . . . . . . . . . . . . . 734
32.10.5 Default Coding Systems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
32.10.6 Specifying a Coding System for One Operation . . . . . . . . 738
32.10.7 Explicit Encoding and Decoding . . . . . . . . . . . . . . . . . . . . . . 739
32.10.8 Terminal I/O Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741
32.11 Input Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741