Mercurial > emacs
view 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 |
line wrap: on
line source
Censoring my Software Richard Stallman [From Datamation, 1 March 1996] Last summer, a few clever legislators proposed a bill to "prohibit pornography" on the Internet. Last fall, right-wing Christians made this cause their own. Last week, President Clinton signed the bill, and we lost the freedom of the press for the public library of the future. This week, I'm censoring GNU Emacs. No, GNU Emacs does not contain pornography. It is a software package, an award-winning extensible and programmable text editor. But the law that was passed applies to far more than pornography. It prohibits "indecent" speech, which can include anything from famous poems, to masterpieces hanging in the Louvre, to advice about safe sex...to software. Naturally, there was a lot of opposition to this bill. Not only from people who use the Internet, and people who appreciate erotica, but from everyone who cares about freedom of the press. But every time we tried to tell the public what was at stake, the forces of censorship responded with a lie: they told the public that the issue was simply pornography. By embedding this lie as a presupposition in their statements about the issue, they succeeded in misinforming the public. So here I am, censoring my software. You see, Emacs contains a version of the famous "doctor program", a.k.a. Eliza, originally developed by Professor Weizenbaum at MIT. This is the program that imitates a Rogerian psychotherapist. The user talks to the program, and the program responds--by playing back the user's own statements, and by recognizing a long list of particular words. The Emacs doctor program was set up to recognize many common curse words, and respond with an appropriately cute message such as, "Would you please watch your tongue?" or "Let's not be vulgar." In order to do this, it had to have a list of curse words. That means the source code for the program was indecent. Because of the censorship law, I had to remove this feature. (I replaced it with a message announcing that the program has been censored for your protection.) The new version of the doctor doesn't recognize the indecent words. If you curse at it, it curses right back to you--for lack of knowing better. Now that people are facing the threat of two years in prison for indecent network postings, it would be helpful if they could access precise rules via the Internet for how to avoid imprisonment. However, this is impossible. The rules would have to mention the forbidden words, so posting them on the Internet would be against the rules. Of course, I'm making an assumption about just what "indecent" means. I have to do this, because nobody knows for sure. The most obvious possible meaning is the meaning it has for television, so I'm using that as a tentative assumption. However, there is a good chance that our courts will reject that interpretation of the law as unconstitutional. We can hope that the courts will recognize the Internet as a medium of publication like books and magazines. If they do, they will entirely reject any law prohibiting "indecent" publications on the Internet. What really worries me is that the courts might take a muddled in-between escape route--by choosing another interpretation of "indecent", one that permits the doctor program or a statement of the decency rules, but prohibits some of the books that children can browse through in the public library and the bookstore. Over the years, as the Internet replaces the public library and the bookstore, some of our freedom of the press will be lost. Just a few weeks ago, another country imposed censorship on the Internet. That was China. We don't think well of China in this country--its government doesn't respect basic freedoms. But how well does our government respect them? And do you care enough to preserve them here? If you care, stay in touch with the Voters Telecommunications Watch. Look in their Web site http://www.vtw.org/ for background information and political action recommendations. Censorship won in February, but we can beat it in November. Copyright 1996 Richard Stallman Verbatim copying and distribution is permitted in any medium provided this notice is preserved.