annotate etc/CENSORSHIP @ 111350:8027e412df98

Backport VC improvements from trunk. * vc/log-edit.el (log-edit-rewrite-fixes): New var. (log-edit-author): New dynamic var. (log-edit-changelog-ours-p, log-edit-insert-changelog-entries): Use it to return the author if different from committer. (log-edit-insert-changelog): Use them to add Author: and Fixes headers. * vc/vc-hooks.el (vc-default-mode-line-string): Doc fix. * vc/vc.el (vc-deduce-backend): New fun. Handle diff buffers. (vc-root-diff, vc-print-root-log, vc-log-incoming) (vc-log-outgoing): Use it. (vc-diff-internal): Set diff-vc-backend. * vc/diff-mode.el (diff-vc-backend): New var. * vc/vc.el (vc-diff-internal): Set `revert-buffer-function' buffer-locally to lambda that re-runs the vc diff command. (Bug#6447) * vc/log-view.el (log-view-mode-map): Bind revert-buffer. Make 'g' (AKA revert-buffer) rerun VC log, log-incoming and log-outgoing commands. * vc/vc.el (vc-log-internal-common): Add a new argument and use it to create a buffer local revert-buffer-function variable. (vc-print-log-internal, vc-log-incoming, vc-log-outgoing): Pass a revert-buffer-function lambda. Improve VC create/retrieve tag/branch. * vc.el (vc-create-tag): Do not read the directory name for VCs with repository revision granularity. Adjust the tag/branch prompt. Reset VC properties. (vc-retrieve-tag): Do not read the directory name for VCs with repository revision granularity. Reset VC properties. Add optional support for resetting VC properties. * vc-dispatcher.el (vc-resynch-window): Add new optional argument, call vc-file-clearprops when true. (vc-resynch-buffer): Add new optional argument, pass it down. (vc-resynch-buffers-in-directory): Likewise. Improve support for special markup in the VC commit message. * vc-mtn.el (vc-mtn-checkin): Support Author: and Date: markup. * vc-hg.el (vc-hg-checkin): Add support for Date:. * vc-git.el (vc-git-checkin): * vc-bzr.el (vc-bzr-checkin): Likewise. Add support for vc-log-incoming, improve vc-log-outgoing for Git. * vc-git.el (vc-git-log-view-mode): Fix font lock for incoming/outgoing logs. (vc-git-log-outgoing, vc-git-log-incoming): New functions. * vc-git.el (vc-git-log-outgoing): Use the same format as the short log. (vc-git-log-incoming): Likewise. Run "git fetch" before the log command Add bindings for vc-log-incoming and vc-log-outgoing. * vc-hooks.el (vc-prefix-map): Add bindings for vc-log-incoming and vc-log-outgoing. * vc-dir.el (vc-dir-menu-map): Add menu bindings for vc-log-incoming and vc-log-outgoing. Improve state updating for VC tag commands. * vc.el (vc-create-tag, vc-retrieve-tag): Call vc-resynch-buffer to update the state of all buffers in the directory. * vc-dir.el (vc-dir): Don't pop-up-windows. (Bug#6204) * vc.el (vc-checkin, vc-modify-change-comment): Adjust to new vc-start/finish-logentry. (vc-find-conflicted-file): New command. (vc-transfer-file): Adjust to new vc-checkin. (vc-next-action): Improve scoping. * vc-git.el (vc-git-checkin): Use log-edit-extract-headers. (vc-git-commits-coding-system): Rename from git-commits-coding-system. * vc-dispatcher.el (vc-log-edit): Shorten names for log-edit-show-files. * vc-bzr.el (vc-bzr-checkin): Use log-edit-extract-headers. (vc-bzr-conflicted-files): New function. * log-edit.el (log-edit-summary, log-edit-header) (log-edit-unknown-header): New faces. (log-edit-headers-alist): New var. (log-edit-header-contents-regexp): New const. (log-edit-match-to-eoh): New function. (log-edit-font-lock-keywords): Use them. (log-edit): Insert a "Summary:" header as default. (log-edit-mode): Mark font-lock rules as case-insensitive. (log-edit-done): Cleanup headers. (log-edit-extract-headers): New function to replace it. * vc-dispatcher.el (vc-finish-logentry): Don't mess so badly with the windows/frames. * vc-bzr.el (vc-bzr-shelve-apply): Don't use *vc-bzr-shelve*. * vc-dir.el (vc-dir-kill-line): New command. (vc-dir-mode-map): Bind it to C-k. (vc-dir-headers): Abbreviate the working dir. * vc-git.el (vc-git-revision-table): Include remote branches. New VC methods: vc-log-incoming and vc-log-outgoing. * vc.el (vc-print-log-setup-buttons, vc-log-internal-common) (vc-incoming-outgoing-internal, vc-log-incoming, vc-log-outgoing): New functions. (vc-print-log-internal): Just call vc-log-internal-common. (vc-log-view-type): New permanent local variable. * vc-hooks.el (vc-menu-map): Bind vc-log-incoming and vc-log-outgoing. * vc-bzr.el (vc-bzr-log-view-mode): Use vc-log-view-type instead of the dynamic bound vc-short-log. (vc-bzr-log-incoming, vc-bzr-log-outgoing): New functions. * vc-git.el (vc-git-log-outgoing): New function. (vc-git-log-view-mode): Use vc-log-view-type instead of the dynamic bound vc-short-log. * vc-hg.el (vc-hg-log-view-mode): Use vc-log-view-type instead of the dynamic bound vc-short-log. Highlight the tag. (vc-hg-log-incoming, vc-hg-log-outgoing): New functions. (vc-hg-outgoing, vc-hg-incoming, vc-hg-outgoing-mode): (vc-hg-incoming-mode): Remove. (vc-hg-extra-menu-map): Do not bind vc-hg-incoming and vc-hg-outgoing. Fix default-directory for vc-root-diff. * vc.el (vc-root-diff): Bind default-directory to the root directory for the diff command. * vc-hg.el (vc-hg-push, vc-hg-pull): Use `apply' when calling `vc-hg-command' with a list of flags. * vc-bzr.el (vc-bzr-log-edit-mode): Add --fixes support to log-edit-before-checkin-process. * vc.el (vc-modify-change-comment): Pass MODE to vc-start-logentry. * vc-bzr.el, vc-hg.el (log-edit-mode): Declare. * vc-dispatcher.el (vc-start-logentry): Doc fix. (log-view-process-buffer, log-edit-extra-flags): Declare. Add special markup processing for commit logs. * log-edit.el (log-edit): Add new argument MODE. Use that mode when non-nil instead of the log-view-mode. * vc.el (vc-default-log-edit-mode): New function. * vc-dispatcher.el (vc-log-edit): Add a mode argument, pass it to log-edit. Support for shelving snapshots and for showing shelves. * vc-bzr.el (vc-bzr-shelve-show, vc-bzr-shelve-show-at-point) (vc-bzr-shelve-apply-and-keep-at-point, vc-bzr-shelve-snapshot): New functions. (vc-bzr-shelve-map, vc-bzr-shelve-menu-map) (vc-bzr-extra-menu-map): Map them.
author Chong Yidong <cyd@stupidchicken.com>
date Sun, 31 Oct 2010 23:13:42 -0400
parents 632018b817e3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25853
Dave Love <fx@gnu.org>
parents:
diff changeset
1 Censoring my Software
Dave Love <fx@gnu.org>
parents:
diff changeset
2 Richard Stallman
Dave Love <fx@gnu.org>
parents:
diff changeset
3 [From Datamation, 1 March 1996]
Dave Love <fx@gnu.org>
parents:
diff changeset
4
Dave Love <fx@gnu.org>
parents:
diff changeset
5
Dave Love <fx@gnu.org>
parents:
diff changeset
6 Last summer, a few clever legislators proposed a bill to "prohibit
Dave Love <fx@gnu.org>
parents:
diff changeset
7 pornography" on the Internet. Last fall, right-wing Christians made
Dave Love <fx@gnu.org>
parents:
diff changeset
8 this cause their own. Last week, President Clinton signed the bill,
Dave Love <fx@gnu.org>
parents:
diff changeset
9 and we lost the freedom of the press for the public library of the
Dave Love <fx@gnu.org>
parents:
diff changeset
10 future. This week, I'm censoring GNU Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
11
Dave Love <fx@gnu.org>
parents:
diff changeset
12 No, GNU Emacs does not contain pornography. It is a software package,
Dave Love <fx@gnu.org>
parents:
diff changeset
13 an award-winning extensible and programmable text editor. But the law
Dave Love <fx@gnu.org>
parents:
diff changeset
14 that was passed applies to far more than pornography. It prohibits
Dave Love <fx@gnu.org>
parents:
diff changeset
15 "indecent" speech, which can include anything from famous poems, to
Dave Love <fx@gnu.org>
parents:
diff changeset
16 masterpieces hanging in the Louvre, to advice about safe sex...to
Dave Love <fx@gnu.org>
parents:
diff changeset
17 software.
Dave Love <fx@gnu.org>
parents:
diff changeset
18
Dave Love <fx@gnu.org>
parents:
diff changeset
19 Naturally, there was a lot of opposition to this bill. Not only from
Dave Love <fx@gnu.org>
parents:
diff changeset
20 people who use the Internet, and people who appreciate erotica, but
Dave Love <fx@gnu.org>
parents:
diff changeset
21 from everyone who cares about freedom of the press.
Dave Love <fx@gnu.org>
parents:
diff changeset
22
Dave Love <fx@gnu.org>
parents:
diff changeset
23 But every time we tried to tell the public what was at stake, the
Dave Love <fx@gnu.org>
parents:
diff changeset
24 forces of censorship responded with a lie: they told the public that
Dave Love <fx@gnu.org>
parents:
diff changeset
25 the issue was simply pornography. By embedding this lie as a
Dave Love <fx@gnu.org>
parents:
diff changeset
26 presupposition in their statements about the issue, they succeeded in
Dave Love <fx@gnu.org>
parents:
diff changeset
27 misinforming the public. So here I am, censoring my software.
Dave Love <fx@gnu.org>
parents:
diff changeset
28
Dave Love <fx@gnu.org>
parents:
diff changeset
29 You see, Emacs contains a version of the famous "doctor program",
Dave Love <fx@gnu.org>
parents:
diff changeset
30 a.k.a. Eliza, originally developed by Professor Weizenbaum at MIT.
Dave Love <fx@gnu.org>
parents:
diff changeset
31 This is the program that imitates a Rogerian psychotherapist. The
Dave Love <fx@gnu.org>
parents:
diff changeset
32 user talks to the program, and the program responds--by playing back
Dave Love <fx@gnu.org>
parents:
diff changeset
33 the user's own statements, and by recognizing a long list of
Dave Love <fx@gnu.org>
parents:
diff changeset
34 particular words.
Dave Love <fx@gnu.org>
parents:
diff changeset
35
Dave Love <fx@gnu.org>
parents:
diff changeset
36 The Emacs doctor program was set up to recognize many common curse
Dave Love <fx@gnu.org>
parents:
diff changeset
37 words, and respond with an appropriately cute message such as, "Would
Dave Love <fx@gnu.org>
parents:
diff changeset
38 you please watch your tongue?" or "Let's not be vulgar." In order to
Dave Love <fx@gnu.org>
parents:
diff changeset
39 do this, it had to have a list of curse words. That means the source
Dave Love <fx@gnu.org>
parents:
diff changeset
40 code for the program was indecent.
Dave Love <fx@gnu.org>
parents:
diff changeset
41
Dave Love <fx@gnu.org>
parents:
diff changeset
42 Because of the censorship law, I had to remove this feature. (I
Dave Love <fx@gnu.org>
parents:
diff changeset
43 replaced it with a message announcing that the program has been
Dave Love <fx@gnu.org>
parents:
diff changeset
44 censored for your protection.) The new version of the doctor doesn't
Dave Love <fx@gnu.org>
parents:
diff changeset
45 recognize the indecent words. If you curse at it, it curses right
Dave Love <fx@gnu.org>
parents:
diff changeset
46 back to you--for lack of knowing better.
Dave Love <fx@gnu.org>
parents:
diff changeset
47
Dave Love <fx@gnu.org>
parents:
diff changeset
48 Now that people are facing the threat of two years in prison for
Dave Love <fx@gnu.org>
parents:
diff changeset
49 indecent network postings, it would be helpful if they could access
Dave Love <fx@gnu.org>
parents:
diff changeset
50 precise rules via the Internet for how to avoid imprisonment.
Dave Love <fx@gnu.org>
parents:
diff changeset
51 However, this is impossible. The rules would have to mention the
Dave Love <fx@gnu.org>
parents:
diff changeset
52 forbidden words, so posting them on the Internet would be against the
Dave Love <fx@gnu.org>
parents:
diff changeset
53 rules.
Dave Love <fx@gnu.org>
parents:
diff changeset
54
Dave Love <fx@gnu.org>
parents:
diff changeset
55 Of course, I'm making an assumption about just what "indecent" means.
Dave Love <fx@gnu.org>
parents:
diff changeset
56 I have to do this, because nobody knows for sure. The most obvious
57465
01772baf50a3 Fix typo.
Richard M. Stallman <rms@gnu.org>
parents: 25853
diff changeset
57 possible meaning is the meaning it has for television, so I'm using
25853
Dave Love <fx@gnu.org>
parents:
diff changeset
58 that as a tentative assumption. However, there is a good chance that
Dave Love <fx@gnu.org>
parents:
diff changeset
59 our courts will reject that interpretation of the law as
Dave Love <fx@gnu.org>
parents:
diff changeset
60 unconstitutional.
Dave Love <fx@gnu.org>
parents:
diff changeset
61
Dave Love <fx@gnu.org>
parents:
diff changeset
62 We can hope that the courts will recognize the Internet as a medium of
Dave Love <fx@gnu.org>
parents:
diff changeset
63 publication like books and magazines. If they do, they will entirely
Dave Love <fx@gnu.org>
parents:
diff changeset
64 reject any law prohibiting "indecent" publications on the Internet.
Dave Love <fx@gnu.org>
parents:
diff changeset
65
Dave Love <fx@gnu.org>
parents:
diff changeset
66 What really worries me is that the courts might take a muddled
Dave Love <fx@gnu.org>
parents:
diff changeset
67 in-between escape route--by choosing another interpretation of
Dave Love <fx@gnu.org>
parents:
diff changeset
68 "indecent", one that permits the doctor program or a statement of the
Dave Love <fx@gnu.org>
parents:
diff changeset
69 decency rules, but prohibits some of the books that children can
Dave Love <fx@gnu.org>
parents:
diff changeset
70 browse through in the public library and the bookstore. Over the
Dave Love <fx@gnu.org>
parents:
diff changeset
71 years, as the Internet replaces the public library and the bookstore,
Dave Love <fx@gnu.org>
parents:
diff changeset
72 some of our freedom of the press will be lost.
Dave Love <fx@gnu.org>
parents:
diff changeset
73
Dave Love <fx@gnu.org>
parents:
diff changeset
74 Just a few weeks ago, another country imposed censorship on the
Dave Love <fx@gnu.org>
parents:
diff changeset
75 Internet. That was China. We don't think well of China in this
Dave Love <fx@gnu.org>
parents:
diff changeset
76 country--its government doesn't respect basic freedoms. But how well
Dave Love <fx@gnu.org>
parents:
diff changeset
77 does our government respect them? And do you care enough to preserve
Dave Love <fx@gnu.org>
parents:
diff changeset
78 them here?
Dave Love <fx@gnu.org>
parents:
diff changeset
79
Dave Love <fx@gnu.org>
parents:
diff changeset
80 If you care, stay in touch with the Voters Telecommunications Watch.
Dave Love <fx@gnu.org>
parents:
diff changeset
81 Look in their Web site http://www.vtw.org/ for background information
Dave Love <fx@gnu.org>
parents:
diff changeset
82 and political action recommendations. Censorship won in February, but
Dave Love <fx@gnu.org>
parents:
diff changeset
83 we can beat it in November.
Dave Love <fx@gnu.org>
parents:
diff changeset
84
Dave Love <fx@gnu.org>
parents:
diff changeset
85 Copyright 1996 Richard Stallman
Dave Love <fx@gnu.org>
parents:
diff changeset
86 Verbatim copying and distribution is permitted in any medium
Dave Love <fx@gnu.org>
parents:
diff changeset
87 provided this notice is preserved.