annotate oldXMenu/SetSel.c @ 27142:f742c86fcc15

(Fgarbage_collect): Return number of live and free strings. (mark_buffer): Remove code in #if 0. (gc_sweep): Ditto. (UNMARK_BALANCE_INTERVALS): Give the macro statement form. (strings_consed): New variable. (allocate_string): Set it. (syms_of_alloc): Add DEFVAR_INT for strings_consed. (Fmemory_use_counts): Return strings_consed. Use Flist. General cleanup in comments etc. Remove conditional compilation for `standalone'. (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): (GC_STRING_BYTES, GC_STRING_CHARS): New macros. (DONT_COPY_FLAG): Removed. (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros. (struct sdata, struct sblock): New (struct string_block): Rewritten. (STRINGS_IN_STRING_BLOCK): New macro. (oldest_sblock, current_sblock, total_strings, total_free_strings) (large_sblocks, string_blocks, string_free_list): New variables. (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros. (init_strings): Rewritten. (allocate_string, allocate_string_data, compact_small_strings) (free_large_strings, sweep_strings): New functions. (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE) (struct string_block_head, current_string_block) (first_string_block, large_string_blocks, STRING_FULLSIZE) (STRING_PAD): Removed. (make_uninit_multibyte_string, make_pure_string): Rewritten. (Fgarbage_collect): Don't set mark bit in large strings. (mark_object): Mark strings differently. Mark symbol names differently. (survives_gc_p): Test marked strings differently. (gc_sweep): Sweep strings differently, unmark strings in symbol names. (compact_strings): Removed.
author Gerd Moellmann <gerd@gnu.org>
date Tue, 04 Jan 2000 12:22:13 +0000
parents bbce331da1be
children 23a1cea22d13
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
1 #include "copyright.h"
Dave Love <fx@gnu.org>
parents:
diff changeset
2
Dave Love <fx@gnu.org>
parents:
diff changeset
3 /* $Header: /u/src/emacs/19.0/oldXMenu/RCS/SetSel.c,v 1.1 1992/04/11 22:10:21 jimb Exp $ */
Dave Love <fx@gnu.org>
parents:
diff changeset
4 /* Copyright Massachusetts Institute of Technology 1985 */
Dave Love <fx@gnu.org>
parents:
diff changeset
5
Dave Love <fx@gnu.org>
parents:
diff changeset
6 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
7 * XMenu: MIT Project Athena, X Window system menu package
Dave Love <fx@gnu.org>
parents:
diff changeset
8 *
Dave Love <fx@gnu.org>
parents:
diff changeset
9 * XMenuSetSelection - Set a menu selection to be active or inactive.
Dave Love <fx@gnu.org>
parents:
diff changeset
10 *
Dave Love <fx@gnu.org>
parents:
diff changeset
11 * Author: Tony Della Fera, DEC
Dave Love <fx@gnu.org>
parents:
diff changeset
12 * August, 1985
Dave Love <fx@gnu.org>
parents:
diff changeset
13 *
Dave Love <fx@gnu.org>
parents:
diff changeset
14 */
Dave Love <fx@gnu.org>
parents:
diff changeset
15
Dave Love <fx@gnu.org>
parents:
diff changeset
16 #include "XMenuInt.h"
Dave Love <fx@gnu.org>
parents:
diff changeset
17
Dave Love <fx@gnu.org>
parents:
diff changeset
18 int
Dave Love <fx@gnu.org>
parents:
diff changeset
19 XMenuSetSelection(menu, p_num, s_num, active)
Dave Love <fx@gnu.org>
parents:
diff changeset
20 register XMenu *menu; /* Menu object to be modified. */
Dave Love <fx@gnu.org>
parents:
diff changeset
21 register int p_num; /* Pane number to be modified. */
Dave Love <fx@gnu.org>
parents:
diff changeset
22 register int s_num; /* Selection number to modified. */
Dave Love <fx@gnu.org>
parents:
diff changeset
23 int active; /* Make selection active? */
Dave Love <fx@gnu.org>
parents:
diff changeset
24 {
Dave Love <fx@gnu.org>
parents:
diff changeset
25 register XMPane *p_ptr; /* XMPane pointer. */
Dave Love <fx@gnu.org>
parents:
diff changeset
26 register XMSelect *s_ptr; /* XMSelect pointer. */
Dave Love <fx@gnu.org>
parents:
diff changeset
27
Dave Love <fx@gnu.org>
parents:
diff changeset
28 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
29 * Find the right pane.
Dave Love <fx@gnu.org>
parents:
diff changeset
30 */
Dave Love <fx@gnu.org>
parents:
diff changeset
31 p_ptr = _XMGetPanePtr(menu, p_num);
Dave Love <fx@gnu.org>
parents:
diff changeset
32 if (p_ptr == NULL) return(XM_FAILURE);
Dave Love <fx@gnu.org>
parents:
diff changeset
33
Dave Love <fx@gnu.org>
parents:
diff changeset
34 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
35 * Find the right selection.
Dave Love <fx@gnu.org>
parents:
diff changeset
36 */
Dave Love <fx@gnu.org>
parents:
diff changeset
37 s_ptr = _XMGetSelectionPtr(p_ptr, s_num);
Dave Love <fx@gnu.org>
parents:
diff changeset
38 if (s_ptr == NULL) return(XM_FAILURE);
Dave Love <fx@gnu.org>
parents:
diff changeset
39
Dave Love <fx@gnu.org>
parents:
diff changeset
40 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
41 * Set its active switch.
Dave Love <fx@gnu.org>
parents:
diff changeset
42 */
Dave Love <fx@gnu.org>
parents:
diff changeset
43 s_ptr->active = active;
Dave Love <fx@gnu.org>
parents:
diff changeset
44
Dave Love <fx@gnu.org>
parents:
diff changeset
45 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
46 * Return the selection number just set.
Dave Love <fx@gnu.org>
parents:
diff changeset
47 */
Dave Love <fx@gnu.org>
parents:
diff changeset
48 _XMErrorCode = XME_NO_ERROR;
Dave Love <fx@gnu.org>
parents:
diff changeset
49 return(s_num);
Dave Love <fx@gnu.org>
parents:
diff changeset
50 }