diff options
| author | Gerd Moellmann | 2000-04-24 13:54:35 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2000-04-24 13:54:35 +0000 |
| commit | 82b911fda555d98b7c5339574fad4c69976b839e (patch) | |
| tree | b7f3c1132fcd27304c42137e618cfadd51342349 /src/buffer.h | |
| parent | d365f5bb0b02c5dbc4576ef149d127f4d8573c3d (diff) | |
| download | emacs-82b911fda555d98b7c5339574fad4c69976b839e.tar.gz emacs-82b911fda555d98b7c5339574fad4c69976b839e.zip | |
(struct buffer): Add extra_line_spacing, remove extra2
and extra3.
Diffstat (limited to 'src/buffer.h')
| -rw-r--r-- | src/buffer.h | 585 |
1 files changed, 294 insertions, 291 deletions
diff --git a/src/buffer.h b/src/buffer.h index 7c17e9899ef..bc15a0632e5 100644 --- a/src/buffer.h +++ b/src/buffer.h | |||
| @@ -436,306 +436,309 @@ struct buffer_text | |||
| 436 | /* This is the structure that the buffer Lisp object points to. */ | 436 | /* This is the structure that the buffer Lisp object points to. */ |
| 437 | 437 | ||
| 438 | struct buffer | 438 | struct buffer |
| 439 | { | 439 | { |
| 440 | /* Everything before the `name' slot must be of a non-Lisp_Object type, | 440 | /* Everything before the `name' slot must be of a non-Lisp_Object type, |
| 441 | and every slot after `name' must be a Lisp_Object. | 441 | and every slot after `name' must be a Lisp_Object. |
| 442 | 442 | ||
| 443 | Check out mark_buffer (alloc.c) to see why. */ | 443 | Check out mark_buffer (alloc.c) to see why. */ |
| 444 | 444 | ||
| 445 | EMACS_INT size; | 445 | EMACS_INT size; |
| 446 | 446 | ||
| 447 | /* Next buffer, in chain of all buffers including killed buffers. | 447 | /* Next buffer, in chain of all buffers including killed buffers. |
| 448 | This chain is used only for garbage collection, in order to | 448 | This chain is used only for garbage collection, in order to |
| 449 | collect killed buffers properly. | 449 | collect killed buffers properly. |
| 450 | Note that vectors and most pseudovectors are all on one chain, | 450 | Note that vectors and most pseudovectors are all on one chain, |
| 451 | but buffers are on a separate chain of their own. */ | 451 | but buffers are on a separate chain of their own. */ |
| 452 | struct buffer *next; | 452 | struct buffer *next; |
| 453 | 453 | ||
| 454 | /* This structure holds the coordinates of the buffer contents | 454 | /* This structure holds the coordinates of the buffer contents |
| 455 | in ordinary buffers. In indirect buffers, this is not used. */ | 455 | in ordinary buffers. In indirect buffers, this is not used. */ |
| 456 | struct buffer_text own_text; | 456 | struct buffer_text own_text; |
| 457 | 457 | ||
| 458 | /* This points to the `struct buffer_text' that used for this buffer. | 458 | /* This points to the `struct buffer_text' that used for this buffer. |
| 459 | In an ordinary buffer, this is the own_text field above. | 459 | In an ordinary buffer, this is the own_text field above. |
| 460 | In an indirect buffer, this is the own_text field of another buffer. */ | 460 | In an indirect buffer, this is the own_text field of another buffer. */ |
| 461 | struct buffer_text *text; | 461 | struct buffer_text *text; |
| 462 | 462 | ||
| 463 | /* Char position of point in buffer. */ | 463 | /* Char position of point in buffer. */ |
| 464 | int pt; | 464 | int pt; |
| 465 | /* Byte position of point in buffer. */ | 465 | /* Byte position of point in buffer. */ |
| 466 | int pt_byte; | 466 | int pt_byte; |
| 467 | /* Char position of beginning of accessible range. */ | 467 | /* Char position of beginning of accessible range. */ |
| 468 | int begv; | 468 | int begv; |
| 469 | /* Byte position of beginning of accessible range. */ | 469 | /* Byte position of beginning of accessible range. */ |
| 470 | int begv_byte; | 470 | int begv_byte; |
| 471 | /* Char position of end of accessible range. */ | 471 | /* Char position of end of accessible range. */ |
| 472 | int zv; | 472 | int zv; |
| 473 | /* Byte position of end of accessible range. */ | 473 | /* Byte position of end of accessible range. */ |
| 474 | int zv_byte; | 474 | int zv_byte; |
| 475 | 475 | ||
| 476 | /* In an indirect buffer, this points to the base buffer. | 476 | /* In an indirect buffer, this points to the base buffer. |
| 477 | In an ordinary buffer, it is 0. */ | 477 | In an ordinary buffer, it is 0. */ |
| 478 | struct buffer *base_buffer; | 478 | struct buffer *base_buffer; |
| 479 | 479 | ||
| 480 | /* A non-zero value in slot IDX means that per-buffer variable | 480 | /* A non-zero value in slot IDX means that per-buffer variable |
| 481 | with index IDX has a local value in this buffer. The index IDX | 481 | with index IDX has a local value in this buffer. The index IDX |
| 482 | for a buffer-local variable is stored in that variable's slot | 482 | for a buffer-local variable is stored in that variable's slot |
| 483 | in buffer_local_flags as a Lisp integer. If the index is -1, | 483 | in buffer_local_flags as a Lisp integer. If the index is -1, |
| 484 | this means the variable is always local in all buffers. */ | 484 | this means the variable is always local in all buffers. */ |
| 485 | #define MAX_PER_BUFFER_VARS 50 | 485 | #define MAX_PER_BUFFER_VARS 50 |
| 486 | char local_flags[MAX_PER_BUFFER_VARS]; | 486 | char local_flags[MAX_PER_BUFFER_VARS]; |
| 487 | 487 | ||
| 488 | /* Set to the modtime of the visited file when read or written. | 488 | /* Set to the modtime of the visited file when read or written. |
| 489 | -1 means visited file was nonexistent. | 489 | -1 means visited file was nonexistent. |
| 490 | 0 means visited file modtime unknown; in no case complain | 490 | 0 means visited file modtime unknown; in no case complain |
| 491 | about any mismatch on next save attempt. */ | 491 | about any mismatch on next save attempt. */ |
| 492 | int modtime; | 492 | int modtime; |
| 493 | /* the value of text->modiff at the last auto-save. */ | 493 | /* the value of text->modiff at the last auto-save. */ |
| 494 | int auto_save_modified; | 494 | int auto_save_modified; |
| 495 | /* The time at which we detected a failure to auto-save, | 495 | /* The time at which we detected a failure to auto-save, |
| 496 | Or -1 if we didn't have a failure. */ | 496 | Or -1 if we didn't have a failure. */ |
| 497 | int auto_save_failure_time; | 497 | int auto_save_failure_time; |
| 498 | /* Position in buffer at which display started | 498 | /* Position in buffer at which display started |
| 499 | the last time this buffer was displayed. */ | 499 | the last time this buffer was displayed. */ |
| 500 | int last_window_start; | 500 | int last_window_start; |
| 501 | 501 | ||
| 502 | /* Set nonzero whenever the narrowing is changed in this buffer. */ | 502 | /* Set nonzero whenever the narrowing is changed in this buffer. */ |
| 503 | int clip_changed; | 503 | int clip_changed; |
| 504 | 504 | ||
| 505 | /* If the long line scan cache is enabled (i.e. the buffer-local | 505 | /* If the long line scan cache is enabled (i.e. the buffer-local |
| 506 | variable cache-long-line-scans is non-nil), newline_cache | 506 | variable cache-long-line-scans is non-nil), newline_cache |
| 507 | points to the newline cache, and width_run_cache points to the | 507 | points to the newline cache, and width_run_cache points to the |
| 508 | width run cache. | 508 | width run cache. |
| 509 | 509 | ||
| 510 | The newline cache records which stretches of the buffer are | 510 | The newline cache records which stretches of the buffer are |
| 511 | known *not* to contain newlines, so that they can be skipped | 511 | known *not* to contain newlines, so that they can be skipped |
| 512 | quickly when we search for newlines. | 512 | quickly when we search for newlines. |
| 513 | 513 | ||
| 514 | The width run cache records which stretches of the buffer are | 514 | The width run cache records which stretches of the buffer are |
| 515 | known to contain characters whose widths are all the same. If | 515 | known to contain characters whose widths are all the same. If |
| 516 | the width run cache maps a character to a value > 0, that value is | 516 | the width run cache maps a character to a value > 0, that value is |
| 517 | the character's width; if it maps a character to zero, we don't | 517 | the character's width; if it maps a character to zero, we don't |
| 518 | know what its width is. This allows compute_motion to process | 518 | know what its width is. This allows compute_motion to process |
| 519 | such regions very quickly, using algebra instead of inspecting | 519 | such regions very quickly, using algebra instead of inspecting |
| 520 | each character. See also width_table, below. */ | 520 | each character. See also width_table, below. */ |
| 521 | struct region_cache *newline_cache; | 521 | struct region_cache *newline_cache; |
| 522 | struct region_cache *width_run_cache; | 522 | struct region_cache *width_run_cache; |
| 523 | 523 | ||
| 524 | /* Non-zero means don't use redisplay optimizations for | 524 | /* Non-zero means don't use redisplay optimizations for |
| 525 | displaying this buffer. */ | 525 | displaying this buffer. */ |
| 526 | unsigned prevent_redisplay_optimizations_p : 1; | 526 | unsigned prevent_redisplay_optimizations_p : 1; |
| 527 | 527 | ||
| 528 | /* Changes in the buffer are recorded here for undo. | 528 | /* Changes in the buffer are recorded here for undo. |
| 529 | t means don't record anything. | 529 | t means don't record anything. |
| 530 | This information belongs to the base buffer of an indirect buffer, | 530 | This information belongs to the base buffer of an indirect buffer, |
| 531 | But we can't store it in the struct buffer_text | 531 | But we can't store it in the struct buffer_text |
| 532 | because local variables have to be right in the struct buffer. | 532 | because local variables have to be right in the struct buffer. |
| 533 | So we copy it around in set_buffer_internal. | 533 | So we copy it around in set_buffer_internal. |
| 534 | This comes before `name' because it is marked in a special way. */ | 534 | This comes before `name' because it is marked in a special way. */ |
| 535 | Lisp_Object undo_list; | 535 | Lisp_Object undo_list; |
| 536 | 536 | ||
| 537 | /* Everything from here down must be a Lisp_Object */ | 537 | /* Everything from here down must be a Lisp_Object */ |
| 538 | 538 | ||
| 539 | /* The name of this buffer. */ | 539 | /* The name of this buffer. */ |
| 540 | Lisp_Object name; | 540 | Lisp_Object name; |
| 541 | 541 | ||
| 542 | /* The name of the file visited in this buffer, or nil. */ | 542 | /* The name of the file visited in this buffer, or nil. */ |
| 543 | Lisp_Object filename; | 543 | Lisp_Object filename; |
| 544 | /* Dir for expanding relative file names. */ | 544 | /* Dir for expanding relative file names. */ |
| 545 | Lisp_Object directory; | 545 | Lisp_Object directory; |
| 546 | /* True iff this buffer has been backed up (if you write to the | 546 | /* True iff this buffer has been backed up (if you write to the |
| 547 | visited file and it hasn't been backed up, then a backup will | 547 | visited file and it hasn't been backed up, then a backup will |
| 548 | be made). */ | 548 | be made). */ |
| 549 | /* This isn't really used by the C code, so could be deleted. */ | 549 | /* This isn't really used by the C code, so could be deleted. */ |
| 550 | Lisp_Object backed_up; | 550 | Lisp_Object backed_up; |
| 551 | /* Length of file when last read or saved. | 551 | /* Length of file when last read or saved. |
| 552 | This is not in the struct buffer_text | 552 | This is not in the struct buffer_text |
| 553 | because it's not used in indirect buffers at all. */ | 553 | because it's not used in indirect buffers at all. */ |
| 554 | Lisp_Object save_length; | 554 | Lisp_Object save_length; |
| 555 | /* File name used for auto-saving this buffer. | 555 | /* File name used for auto-saving this buffer. |
| 556 | This is not in the struct buffer_text | 556 | This is not in the struct buffer_text |
| 557 | because it's not used in indirect buffers at all. */ | 557 | because it's not used in indirect buffers at all. */ |
| 558 | Lisp_Object auto_save_file_name; | 558 | Lisp_Object auto_save_file_name; |
| 559 | 559 | ||
| 560 | /* Non-nil if buffer read-only. */ | 560 | /* Non-nil if buffer read-only. */ |
| 561 | Lisp_Object read_only; | 561 | Lisp_Object read_only; |
| 562 | /* "The mark". This is a marker which may | 562 | /* "The mark". This is a marker which may |
| 563 | point into this buffer or may point nowhere. */ | 563 | point into this buffer or may point nowhere. */ |
| 564 | Lisp_Object mark; | 564 | Lisp_Object mark; |
| 565 | 565 | ||
| 566 | /* Alist of elements (SYMBOL . VALUE-IN-THIS-BUFFER) | 566 | /* Alist of elements (SYMBOL . VALUE-IN-THIS-BUFFER) |
| 567 | for all per-buffer variables of this buffer. */ | 567 | for all per-buffer variables of this buffer. */ |
| 568 | Lisp_Object local_var_alist; | 568 | Lisp_Object local_var_alist; |
| 569 | 569 | ||
| 570 | /* Symbol naming major mode (eg, lisp-mode). */ | 570 | /* Symbol naming major mode (eg, lisp-mode). */ |
| 571 | Lisp_Object major_mode; | 571 | Lisp_Object major_mode; |
| 572 | /* Pretty name of major mode (eg, "Lisp"). */ | 572 | /* Pretty name of major mode (eg, "Lisp"). */ |
| 573 | Lisp_Object mode_name; | 573 | Lisp_Object mode_name; |
| 574 | /* Mode line element that controls format of mode line. */ | 574 | /* Mode line element that controls format of mode line. */ |
| 575 | Lisp_Object mode_line_format; | 575 | Lisp_Object mode_line_format; |
| 576 | 576 | ||
| 577 | /* Analogous to mode_line_format for the line displayed at the top | 577 | /* Analogous to mode_line_format for the line displayed at the top |
| 578 | of windows. Nil means don't display that line. */ | 578 | of windows. Nil means don't display that line. */ |
| 579 | Lisp_Object header_line_format; | 579 | Lisp_Object header_line_format; |
| 580 | 580 | ||
| 581 | /* Keys that are bound local to this buffer. */ | 581 | /* Keys that are bound local to this buffer. */ |
| 582 | Lisp_Object keymap; | 582 | Lisp_Object keymap; |
| 583 | /* This buffer's local abbrev table. */ | 583 | /* This buffer's local abbrev table. */ |
| 584 | Lisp_Object abbrev_table; | 584 | Lisp_Object abbrev_table; |
| 585 | /* This buffer's syntax table. */ | 585 | /* This buffer's syntax table. */ |
| 586 | Lisp_Object syntax_table; | 586 | Lisp_Object syntax_table; |
| 587 | /* This buffer's category table. */ | 587 | /* This buffer's category table. */ |
| 588 | Lisp_Object category_table; | 588 | Lisp_Object category_table; |
| 589 | 589 | ||
| 590 | /* Values of several buffer-local variables */ | 590 | /* Values of several buffer-local variables */ |
| 591 | /* tab-width is buffer-local so that redisplay can find it | 591 | /* tab-width is buffer-local so that redisplay can find it |
| 592 | in buffers that are not current */ | 592 | in buffers that are not current */ |
| 593 | Lisp_Object case_fold_search; | 593 | Lisp_Object case_fold_search; |
| 594 | Lisp_Object tab_width; | 594 | Lisp_Object tab_width; |
| 595 | Lisp_Object fill_column; | 595 | Lisp_Object fill_column; |
| 596 | Lisp_Object left_margin; | 596 | Lisp_Object left_margin; |
| 597 | /* Function to call when insert space past fill column. */ | 597 | /* Function to call when insert space past fill column. */ |
| 598 | Lisp_Object auto_fill_function; | 598 | Lisp_Object auto_fill_function; |
| 599 | /* nil: text, t: binary. | 599 | /* nil: text, t: binary. |
| 600 | This value is meaningful only on certain operating systems. */ | 600 | This value is meaningful only on certain operating systems. */ |
| 601 | /* Actually, we don't need this flag any more because end-of-line | 601 | /* Actually, we don't need this flag any more because end-of-line |
| 602 | is handled correctly according to the buffer-file-coding-system | 602 | is handled correctly according to the buffer-file-coding-system |
| 603 | of the buffer. Just keeping it for backward compatibility. */ | 603 | of the buffer. Just keeping it for backward compatibility. */ |
| 604 | Lisp_Object buffer_file_type; | 604 | Lisp_Object buffer_file_type; |
| 605 | 605 | ||
| 606 | /* Case table for case-conversion in this buffer. | 606 | /* Case table for case-conversion in this buffer. |
| 607 | This char-table maps each char into its lower-case version. */ | 607 | This char-table maps each char into its lower-case version. */ |
| 608 | Lisp_Object downcase_table; | 608 | Lisp_Object downcase_table; |
| 609 | /* Char-table mapping each char to its upper-case version. */ | 609 | /* Char-table mapping each char to its upper-case version. */ |
| 610 | Lisp_Object upcase_table; | 610 | Lisp_Object upcase_table; |
| 611 | /* Char-table for conversion for case-folding search. */ | 611 | /* Char-table for conversion for case-folding search. */ |
| 612 | Lisp_Object case_canon_table; | 612 | Lisp_Object case_canon_table; |
| 613 | /* Char-table of equivalences for case-folding search. */ | 613 | /* Char-table of equivalences for case-folding search. */ |
| 614 | Lisp_Object case_eqv_table; | 614 | Lisp_Object case_eqv_table; |
| 615 | 615 | ||
| 616 | /* Non-nil means do not display continuation lines. */ | 616 | /* Non-nil means do not display continuation lines. */ |
| 617 | Lisp_Object truncate_lines; | 617 | Lisp_Object truncate_lines; |
| 618 | /* Non-nil means display ctl chars with uparrow. */ | 618 | /* Non-nil means display ctl chars with uparrow. */ |
| 619 | Lisp_Object ctl_arrow; | 619 | Lisp_Object ctl_arrow; |
| 620 | /* Non-nil means display text from right to left. */ | 620 | /* Non-nil means display text from right to left. */ |
| 621 | Lisp_Object direction_reversed; | 621 | Lisp_Object direction_reversed; |
| 622 | /* Non-nil means do selective display; | 622 | /* Non-nil means do selective display; |
| 623 | see doc string in syms_of_buffer (buffer.c) for details. */ | 623 | see doc string in syms_of_buffer (buffer.c) for details. */ |
| 624 | Lisp_Object selective_display; | 624 | Lisp_Object selective_display; |
| 625 | #ifndef old | 625 | #ifndef old |
| 626 | /* Non-nil means show ... at end of line followed by invisible lines. */ | 626 | /* Non-nil means show ... at end of line followed by invisible lines. */ |
| 627 | Lisp_Object selective_display_ellipses; | 627 | Lisp_Object selective_display_ellipses; |
| 628 | #endif | 628 | #endif |
| 629 | /* Alist of (FUNCTION . STRING) for each minor mode enabled in buffer. */ | 629 | /* Alist of (FUNCTION . STRING) for each minor mode enabled in buffer. */ |
| 630 | Lisp_Object minor_modes; | 630 | Lisp_Object minor_modes; |
| 631 | /* t if "self-insertion" should overwrite; `binary' if it should also | 631 | /* t if "self-insertion" should overwrite; `binary' if it should also |
| 632 | overwrite newlines and tabs - for editing executables and the like. */ | 632 | overwrite newlines and tabs - for editing executables and the like. */ |
| 633 | Lisp_Object overwrite_mode; | 633 | Lisp_Object overwrite_mode; |
| 634 | /* non-nil means abbrev mode is on. Expand abbrevs automatically. */ | 634 | /* non-nil means abbrev mode is on. Expand abbrevs automatically. */ |
| 635 | Lisp_Object abbrev_mode; | 635 | Lisp_Object abbrev_mode; |
| 636 | /* Display table to use for text in this buffer. */ | 636 | /* Display table to use for text in this buffer. */ |
| 637 | Lisp_Object display_table; | 637 | Lisp_Object display_table; |
| 638 | /* t means the mark and region are currently active. */ | 638 | /* t means the mark and region are currently active. */ |
| 639 | Lisp_Object mark_active; | 639 | Lisp_Object mark_active; |
| 640 | 640 | ||
| 641 | /* List of overlays that end at or before the current center, | 641 | /* List of overlays that end at or before the current center, |
| 642 | in order of end-position. */ | 642 | in order of end-position. */ |
| 643 | Lisp_Object overlays_before; | 643 | Lisp_Object overlays_before; |
| 644 | 644 | ||
| 645 | /* List of overlays that end after the current center, | 645 | /* List of overlays that end after the current center, |
| 646 | in order of start-position. */ | 646 | in order of start-position. */ |
| 647 | Lisp_Object overlays_after; | 647 | Lisp_Object overlays_after; |
| 648 | 648 | ||
| 649 | /* Position where the overlay lists are centered. */ | 649 | /* Position where the overlay lists are centered. */ |
| 650 | Lisp_Object overlay_center; | 650 | Lisp_Object overlay_center; |
| 651 | 651 | ||
| 652 | /* Non-nil means the buffer contents are regarded as multi-byte | 652 | /* Non-nil means the buffer contents are regarded as multi-byte |
| 653 | form of characters, not a binary code. */ | 653 | form of characters, not a binary code. */ |
| 654 | Lisp_Object enable_multibyte_characters; | 654 | Lisp_Object enable_multibyte_characters; |
| 655 | 655 | ||
| 656 | /* Coding system to be used for encoding the buffer contents on | 656 | /* Coding system to be used for encoding the buffer contents on |
| 657 | saving. */ | 657 | saving. */ |
| 658 | Lisp_Object buffer_file_coding_system; | 658 | Lisp_Object buffer_file_coding_system; |
| 659 | 659 | ||
| 660 | /* List of symbols naming the file format used for visited file. */ | 660 | /* List of symbols naming the file format used for visited file. */ |
| 661 | Lisp_Object file_format; | 661 | Lisp_Object file_format; |
| 662 | 662 | ||
| 663 | /* True if the newline position cache and width run cache are | 663 | /* True if the newline position cache and width run cache are |
| 664 | enabled. See search.c and indent.c. */ | 664 | enabled. See search.c and indent.c. */ |
| 665 | Lisp_Object cache_long_line_scans; | 665 | Lisp_Object cache_long_line_scans; |
| 666 | 666 | ||
| 667 | /* If the width run cache is enabled, this table contains the | 667 | /* If the width run cache is enabled, this table contains the |
| 668 | character widths width_run_cache (see above) assumes. When we | 668 | character widths width_run_cache (see above) assumes. When we |
| 669 | do a thorough redisplay, we compare this against the buffer's | 669 | do a thorough redisplay, we compare this against the buffer's |
| 670 | current display table to see whether the display table has | 670 | current display table to see whether the display table has |
| 671 | affected the widths of any characters. If it has, we | 671 | affected the widths of any characters. If it has, we |
| 672 | invalidate the width run cache, and re-initialize width_table. */ | 672 | invalidate the width run cache, and re-initialize width_table. */ |
| 673 | Lisp_Object width_table; | 673 | Lisp_Object width_table; |
| 674 | 674 | ||
| 675 | /* In an indirect buffer, or a buffer that is the base of an | 675 | /* In an indirect buffer, or a buffer that is the base of an |
| 676 | indirect buffer, this holds a marker that records | 676 | indirect buffer, this holds a marker that records |
| 677 | PT for this buffer when the buffer is not current. */ | 677 | PT for this buffer when the buffer is not current. */ |
| 678 | Lisp_Object pt_marker; | 678 | Lisp_Object pt_marker; |
| 679 | 679 | ||
| 680 | /* In an indirect buffer, or a buffer that is the base of an | 680 | /* In an indirect buffer, or a buffer that is the base of an |
| 681 | indirect buffer, this holds a marker that records | 681 | indirect buffer, this holds a marker that records |
| 682 | BEGV for this buffer when the buffer is not current. */ | 682 | BEGV for this buffer when the buffer is not current. */ |
| 683 | Lisp_Object begv_marker; | 683 | Lisp_Object begv_marker; |
| 684 | 684 | ||
| 685 | /* In an indirect buffer, or a buffer that is the base of an | 685 | /* In an indirect buffer, or a buffer that is the base of an |
| 686 | indirect buffer, this holds a marker that records | 686 | indirect buffer, this holds a marker that records |
| 687 | ZV for this buffer when the buffer is not current. */ | 687 | ZV for this buffer when the buffer is not current. */ |
| 688 | Lisp_Object zv_marker; | 688 | Lisp_Object zv_marker; |
| 689 | 689 | ||
| 690 | /* This holds the point value before the last scroll operation. | 690 | /* This holds the point value before the last scroll operation. |
| 691 | Explicitly setting point sets this to nil. */ | 691 | Explicitly setting point sets this to nil. */ |
| 692 | Lisp_Object point_before_scroll; | 692 | Lisp_Object point_before_scroll; |
| 693 | 693 | ||
| 694 | /* Truename of the visited file, or nil. */ | 694 | /* Truename of the visited file, or nil. */ |
| 695 | Lisp_Object file_truename; | 695 | Lisp_Object file_truename; |
| 696 | 696 | ||
| 697 | /* Invisibility spec of this buffer. | 697 | /* Invisibility spec of this buffer. |
| 698 | t => any non-nil `invisible' property means invisible. | 698 | t => any non-nil `invisible' property means invisible. |
| 699 | A list => `invisible' property means invisible | 699 | A list => `invisible' property means invisible |
| 700 | if it is memq in that list. */ | 700 | if it is memq in that list. */ |
| 701 | Lisp_Object invisibility_spec; | 701 | Lisp_Object invisibility_spec; |
| 702 | 702 | ||
| 703 | /* This is the last window that was selected with this buffer in it, | 703 | /* This is the last window that was selected with this buffer in it, |
| 704 | or nil if that window no longer displays this buffer. */ | 704 | or nil if that window no longer displays this buffer. */ |
| 705 | Lisp_Object last_selected_window; | 705 | Lisp_Object last_selected_window; |
| 706 | 706 | ||
| 707 | /* Incremented each time the buffer is displayed in a window. */ | 707 | /* Incremented each time the buffer is displayed in a window. */ |
| 708 | Lisp_Object display_count; | 708 | Lisp_Object display_count; |
| 709 | 709 | ||
| 710 | /* Widths of left and right marginal areas for windows displaying | 710 | /* Widths of left and right marginal areas for windows displaying |
| 711 | this buffer. */ | 711 | this buffer. */ |
| 712 | Lisp_Object left_margin_width, right_margin_width; | 712 | Lisp_Object left_margin_width, right_margin_width; |
| 713 | 713 | ||
| 714 | /* Non-nil means indicate lines not displaying text (in a style | 714 | /* Non-nil means indicate lines not displaying text (in a style |
| 715 | like vi). */ | 715 | like vi). */ |
| 716 | Lisp_Object indicate_empty_lines; | 716 | Lisp_Object indicate_empty_lines; |
| 717 | 717 | ||
| 718 | /* Time stamp updated each time this buffer is displayed in a window. */ | 718 | /* Time stamp updated each time this buffer is displayed in a window. */ |
| 719 | Lisp_Object display_time; | 719 | Lisp_Object display_time; |
| 720 | 720 | ||
| 721 | /* If scrolling the display because point is below the bottom of a | 721 | /* If scrolling the display because point is below the bottom of a |
| 722 | window showing this buffer, try to choose a window start so | 722 | window showing this buffer, try to choose a window start so |
| 723 | that point ends up this number of lines from the top of the | 723 | that point ends up this number of lines from the top of the |
| 724 | window. Nil means that scrolling method isn't used. */ | 724 | window. Nil means that scrolling method isn't used. */ |
| 725 | Lisp_Object scroll_up_aggressively; | 725 | Lisp_Object scroll_up_aggressively; |
| 726 | 726 | ||
| 727 | /* If scrolling the display because point is above the top of a | 727 | /* If scrolling the display because point is above the top of a |
| 728 | window showing this buffer, try to choose a window start so | 728 | window showing this buffer, try to choose a window start so |
| 729 | that point ends up this number of lines from the bottom of the | 729 | that point ends up this number of lines from the bottom of the |
| 730 | window. Nil means that scrolling method isn't used. */ | 730 | window. Nil means that scrolling method isn't used. */ |
| 731 | Lisp_Object scroll_down_aggressively; | 731 | Lisp_Object scroll_down_aggressively; |
| 732 | 732 | ||
| 733 | Lisp_Object cursor_type; | 733 | /* Desired cursor type in this buffer. See the doc string of |
| 734 | per-buffer variable `cursor-type'. */ | ||
| 735 | Lisp_Object cursor_type; | ||
| 736 | |||
| 737 | /* An integer > 0 means put that number of pixels below text lines | ||
| 738 | in the display of this buffer. */ | ||
| 739 | Lisp_Object extra_line_spacing; | ||
| 740 | }; | ||
| 734 | 741 | ||
| 735 | /* These are so we don't have to recompile everything | ||
| 736 | the next few times we add a new slot. */ | ||
| 737 | Lisp_Object extra2, extra3; | ||
| 738 | }; | ||
| 739 | 742 | ||
| 740 | /* This points to the current buffer. */ | 743 | /* This points to the current buffer. */ |
| 741 | 744 | ||