Mercurial > emacs
annotate etc/CENSORSHIP @ 111413:d53ee71e7e89
Unify mouse-highlight code for all GUI and TTY sessions.
term.c: Remove static mouse_face_* variables. All users
changed.
(term_show_mouse_face, term_clear_mouse_face)
(fast_find_position, term_mouse_highlight): Functions deleted.
(tty_draw_row_with_mouse_face): New function.
(term_mouse_movement): Call note_mouse_highlight instead of
term_mouse_highlight.
nsterm.m (ns_update_window_begin, ns_update_window_end)
(ns_update_end, x_destroy_window, ns_frame_up_to_date)
(ns_dumpglyphs_box_or_relief, ns_maybe_dumpglyphs_background)
(ns_dumpglyphs_image, ns_dumpglyphs_stretch)
(ns_initialize_display_info, keyDown, mouseMoved, mouseExited):
Replace Display_Info with Mouse_HLInfo everywhere where
mouse_face_* members were accessed for mouse highlight purposes.
xterm.c (x_update_window_begin, x_update_window_end)
(x_update_end, XTframe_up_to_date, x_set_mouse_face_gc)
(handle_one_xevent, x_free_frame_resources, x_term_init): Replace
Display_Info with Mouse_HLInfo everywhere where mouse_face_*
members were accessed for mouse highlight purposes.
w32term.c (x_update_window_begin, x_update_window_end)
(x_update_end, w32_read_socket, x_free_frame_resources)
(w32_initialize_display_info): Replace Display_Info with
Mouse_HLInfo everywhere where mouse_face_* members were accessed
for mouse highlight purposes.
xdisp.c (show_mouse_face, note_mode_line_or_margin_highlight)
(note_mouse_highlight) [HAVE_WINDOW_SYSTEM]: Don't run GUI code
unless the frame is on a window-system.
(get_tool_bar_item, handle_tool_bar_click)
(note_tool_bar_highlight, draw_glyphs, erase_phys_cursor)
(show_mouse_face, clear_mouse_face, coords_in_mouse_face_p)
(note_mode_line_or_margin_highlight, note_mouse_highlight)
(x_clear_window_mouse_face, cancel_mouse_face, expose_frame):
Replace Display_Info with Mouse_HLInfo everywhere where
mouse_face_* members were accessed for mouse highlight purposes.
(coords_in_mouse_face_p): Move prototype out of the
HAVE_WINDOW_SYSTEM conditional.
(x_y_to_hpos_vpos, frame_to_window_pixel_xy): Move out of the
HAVE_WINDOW_SYSTEM block.
(try_window_id) [HAVE_GPM || MSDOS]: Call
x_clear_window_mouse_face.
(draw_row_with_mouse_face): Implementation for HAVE_WINDOW_SYSTEM
systems. Call tty_draw_row_with_mouse_face for TTY systems.
(show_mouse_face): Call draw_row_with_mouse_face, instead of
calling draw_glyphs directly.
(show_mouse_face, clear_mouse_face, coords_in_mouse_face_p)
(cursor_in_mouse_face_p, rows_from_pos_range)
(mouse_face_from_buffer_pos, mouse_face_from_string_pos)
(note_mode_line_or_margin_highlight, note_mouse_highlight)
(x_clear_window_mouse_face, cancel_mouse_face): Move out of the
HAVE_WINDOW_SYSTEM block. Ifdef away window-system specific
fragments.
(note_mouse_highlight): Call popup_activated for MSDOS as well.
Clear mouse highlight if pointer is over glyphs whose OBJECT is an
integer.
(mouse_face_from_buffer_pos): Add parentheses around && within ||.
(x_consider_frame_title, tool_bar_lines_needed): Move
prototypes to HAVE_WINDOW_SYSTEM-only part.
(get_window_cursor_type): Move inside a HAVE_WINDOW_SYSTEM-only
part. Remove "#ifdef HAVE_WINDOW_SYSTEM" from body of function.
(null_glyph_slice): Move declaration into HAVE_WINDOW_SYSTEM-only
part.
dispnew.c (mirror_make_current): Set Y coordinate of the
mode-line and header-line rows.
(init_display): Setup initial frame's output_data for text
terminal frames.
xmenu.c (popup_activated): Don't define on MSDOS, which now has
its own definition on msdos.c.
msdos.c (show_mouse_face, clear_mouse_face)
(fast_find_position, IT_note_mode_line_highlight)
(IT_note_mouse_highlight): Functions deleted.
(IT_frame_up_to_date, dos_rawgetc): Call note_mouse_highlight
instead of IT_note_mouse_highlight.
(draw_row_with_mouse_face, popup_activated): New functions.
(dos_set_window_size, draw_row_with_mouse_face, IT_update_begin)
(IT_update_end, IT_frame_up_to_date, internal_terminal_init)
(dos_rawgetc): Replace Display_Info with Mouse_HLInfo everywhere
where mouse_face_* members were accessed for mouse highlight
purposes.
msdos.h (initialize_msdos_display): Add prototype.
frame.h (MOUSE_HL_INFO): New macro.
lisp.h (Mouse_HLInfo): New data type.
xterm.h (struct x_display_info):
w32term.h (struct w32_display_info):
nsterm.h (struct ns_display_info):
termchar.h (struct tty_display_info): Use it instead of
mouse_face_* members.
dispextern.h (show_mouse_face, clear_mouse_face): Update type of
1st argument.
(frame_to_window_pixel_xy, note_mouse_highlight)
(x_clear_window_mouse_face, cancel_mouse_face, clear_mouse_face)
(show_mouse_face, cursor_in_mouse_face_p): Move prototypes out of
HAVE_WINDOW_SYSTEM conditional.
(draw_row_with_mouse_face): Declare prototype.
(tty_draw_row_with_mouse_face): Declare prototype.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sat, 06 Nov 2010 10:28:31 +0200 |
parents | 632018b817e3 |
children |
rev | line source |
---|---|
25853 | 1 Censoring my Software |
2 Richard Stallman | |
3 [From Datamation, 1 March 1996] | |
4 | |
5 | |
6 Last summer, a few clever legislators proposed a bill to "prohibit | |
7 pornography" on the Internet. Last fall, right-wing Christians made | |
8 this cause their own. Last week, President Clinton signed the bill, | |
9 and we lost the freedom of the press for the public library of the | |
10 future. This week, I'm censoring GNU Emacs. | |
11 | |
12 No, GNU Emacs does not contain pornography. It is a software package, | |
13 an award-winning extensible and programmable text editor. But the law | |
14 that was passed applies to far more than pornography. It prohibits | |
15 "indecent" speech, which can include anything from famous poems, to | |
16 masterpieces hanging in the Louvre, to advice about safe sex...to | |
17 software. | |
18 | |
19 Naturally, there was a lot of opposition to this bill. Not only from | |
20 people who use the Internet, and people who appreciate erotica, but | |
21 from everyone who cares about freedom of the press. | |
22 | |
23 But every time we tried to tell the public what was at stake, the | |
24 forces of censorship responded with a lie: they told the public that | |
25 the issue was simply pornography. By embedding this lie as a | |
26 presupposition in their statements about the issue, they succeeded in | |
27 misinforming the public. So here I am, censoring my software. | |
28 | |
29 You see, Emacs contains a version of the famous "doctor program", | |
30 a.k.a. Eliza, originally developed by Professor Weizenbaum at MIT. | |
31 This is the program that imitates a Rogerian psychotherapist. The | |
32 user talks to the program, and the program responds--by playing back | |
33 the user's own statements, and by recognizing a long list of | |
34 particular words. | |
35 | |
36 The Emacs doctor program was set up to recognize many common curse | |
37 words, and respond with an appropriately cute message such as, "Would | |
38 you please watch your tongue?" or "Let's not be vulgar." In order to | |
39 do this, it had to have a list of curse words. That means the source | |
40 code for the program was indecent. | |
41 | |
42 Because of the censorship law, I had to remove this feature. (I | |
43 replaced it with a message announcing that the program has been | |
44 censored for your protection.) The new version of the doctor doesn't | |
45 recognize the indecent words. If you curse at it, it curses right | |
46 back to you--for lack of knowing better. | |
47 | |
48 Now that people are facing the threat of two years in prison for | |
49 indecent network postings, it would be helpful if they could access | |
50 precise rules via the Internet for how to avoid imprisonment. | |
51 However, this is impossible. The rules would have to mention the | |
52 forbidden words, so posting them on the Internet would be against the | |
53 rules. | |
54 | |
55 Of course, I'm making an assumption about just what "indecent" means. | |
56 I have to do this, because nobody knows for sure. The most obvious | |
57465 | 57 possible meaning is the meaning it has for television, so I'm using |
25853 | 58 that as a tentative assumption. However, there is a good chance that |
59 our courts will reject that interpretation of the law as | |
60 unconstitutional. | |
61 | |
62 We can hope that the courts will recognize the Internet as a medium of | |
63 publication like books and magazines. If they do, they will entirely | |
64 reject any law prohibiting "indecent" publications on the Internet. | |
65 | |
66 What really worries me is that the courts might take a muddled | |
67 in-between escape route--by choosing another interpretation of | |
68 "indecent", one that permits the doctor program or a statement of the | |
69 decency rules, but prohibits some of the books that children can | |
70 browse through in the public library and the bookstore. Over the | |
71 years, as the Internet replaces the public library and the bookstore, | |
72 some of our freedom of the press will be lost. | |
73 | |
74 Just a few weeks ago, another country imposed censorship on the | |
75 Internet. That was China. We don't think well of China in this | |
76 country--its government doesn't respect basic freedoms. But how well | |
77 does our government respect them? And do you care enough to preserve | |
78 them here? | |
79 | |
80 If you care, stay in touch with the Voters Telecommunications Watch. | |
81 Look in their Web site http://www.vtw.org/ for background information | |
82 and political action recommendations. Censorship won in February, but | |
83 we can beat it in November. | |
84 | |
85 Copyright 1996 Richard Stallman | |
86 Verbatim copying and distribution is permitted in any medium | |
87 provided this notice is preserved. |