view lisp/paths.el @ 1719:48f539ac6921

* frame.h (struct frame): New fields `can_have_scrollbars' and `has_vertical_scrollbars'. (FRAME_CAN_HAVE_SCROLLBARS, FRAME_HAS_VERTICAL_SCROLLBARS): New accessors, for both the MULTI_FRAME and non-MULTI_FRAME. (VERTICAL_SCROLLBAR_WIDTH, WINDOW_VERTICAL_SCROLLBAR, WINDOW_VERTICAL_SCROLLBAR_COLUMN, WINDOW_VERTICAL_SCROLLBAR_HEIGHT): New macros. * window.h (struct window): New field `vertical_scrollbar'. * xterm.h (struct x_display): vertical_scrollbars, judge_timestamp, vertical_scrollbar_extra: New fields. (struct scrollbar): New struct. (VERTICAL_SCROLLBAR_PIXEL_WIDTH, VERTICAL_SCROLLBAR_PIXEL_HEIGHT, VERTICAL_SCROLLBAR_LEFT_BORDER, VERTICAL_SCROLLBAR_RIGHT_BORDER, VERTICAL_SCROLLBAR_TOP_BORDER, VERTICAL_SCROLLBAR_BOTTOM_BORDER, CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT, PIXEL_TO_CHAR_WIDTH, PIXEL_TO_CHAR_HEIGHT): New accessors and macros. * frame.c (make_frame): Initialize the `can_have_scrollbars' and `has_vertical_scrollbars' fields of the frame. * term.c (term_init): Note that TERMCAP terminals don't support scrollbars. (mouse_position_hook): Document new args. (set_vertical_scrollbar_hook, condemn_scrollbars_hook, redeem_scrollbar_hook, judge_scrollbars_hook): New hooks. * termhooks.h: Declare and document them. (enum scrollbar_part): New type. (struct input_event): Describe the new form of the scrollbar_click event type. Change `part' from a Lisp_Object to an enum scrollbar_part. Add a new field `scrollbar'. * keyboard.c (kbd_buffer_get_event): Pass appropriate new parameters to *mouse_position_hook, and make_lispy_movement. * xfns.c (x_set_vertical_scrollbar): New function. (x_figure_window_size): Use new macros to calculate frame size. (Fx_create_frame): Note that X Windows frames do support scroll bars. Default to "yes". * xterm.c: #include <X11/cursorfont.h> and "window.h". (x_vertical_scrollbar_cursor): New variable. (x_term_init): Initialize it. (last_mouse_bar, last_mouse_bar_frame, last_mouse_part, last_mouse_scroll_range_start, last_mouse_scroll_range_end): New variables. (XTmouse_position): Use them to return scrollbar movement events. Take new arguments, for that purpose. (x_window_to_scrollbar, x_scrollbar_create, x_scrollbar_set_handle, x_scrollbar_remove, x_scrollbar_move, XTset_scrollbar, XTcondemn_scrollbars, XTredeem_scrollbar, XTjudge_scrollbars, x_scrollbar_expose, x_scrollbar_background_expose, x_scrollbar_handle_click, x_scrollbar_handle_motion): New functions to implement scrollbars. (x_term_init): Set the termhooks.h hooks to point to them. (x_set_window_size): Use new macros to calculate frame size. Set vertical_scrollbar_extra field. (x_make_frame_visible): Use the frame accessor FRAME_HAS_VERTICAL_SCROLLBARS to decide if we need to map the frame's subwindows as well. (XTread_socket): Use new size-calculation macros from xterm.h when processing ConfigureNotify events. (x_wm_set_size_hint): Use PIXEL_TO_CHAR_WIDTH and PIXEL_TO_CHAR_HEIGHT macros. * ymakefile (xdisp.o): This now depends on termhooks.h. (xterm.o): This now depends on window.h. * xterm.h (struct x_display): Delete v_scrollbar, v_thumbup, v_thumbdown, v_slider, h_scrollbar, h_thumbup, h_thumbdown, h_slider, v_scrollbar_width, h_scrollbar_height fields. * keyboard.c (Qvscrollbar_part, Qvslider_part, Qvthumbup_part, Qvthumbdown_part, Qhscrollbar_part, Qhslider_part, Qhthumbup_part, Qhthumbdown_part, Qscrollbar_click): Deleted; part of an obsolete interface. (head_table): Removed from here as well. (syms_of_keyboard): And here. * keyboard.h: And here. (POSN_SCROLLBAR_BUTTON): Removed. * xscrollbar.h: File removed - no longer necessary. * xfns.c: Don't #include it any more. (Qhorizontal_scroll_bar, Qvertical_scroll_bar): Deleted. (syms_of_xfns): Don't initialize or staticpro them. (gray_bits): Salvaged from xscrollbar.h. (x_window_to_scrollbar): Deleted. (x_set_horizontal_scrollbar): Deleted. (enum x_frame_parm, x_frame_parms): Remove references to x_set_horizontal_scrollbar. (x_set_foreground_color, x_set_background_color, x_set_border_pixel): Remove special code to support scrollbars. (Fx_create_frame): Remove old scrollbar setup code. (install_vertical_scrollbar, install_horizontal_scrollbar, adjust_scrollbars, x_resize_scrollbars): Deleted. * xterm.c (construct_mouse_click): This doesn't need to take care of scrollbar clicks anymore. (XTread_socket): Remove old code to support scrollbars. Call new functions instead for events which occur in scrollbar windows. (XTupdate_end): Remove call to adjust_scrollbars; the main redisplay code takes care of that now. (enum window_type): Deleted. * ymakefile: Note that xfns.o no longer depends on xscrollbar.h. * xfns.c (syms_of_xfns): Delete defvars for x_mouse_x and x_mouse_y. That interface hasn't been live for years. (x_mouse_x, x_mouse_y): Delete these variables. * xfns.c (Fx_create_frame): Don't initialize the wm_hints field here. (x_window): Do it here, along with all the similar stuff. It's a pain to remember that you can't assign to FRAME->visible. Let's change all references to the `visible' member of struct frame to use the accessor macros, and then write a setter for the `visible' field that does the right thing. * frame.h (FRAME_VISIBLE_P): Make this not an l-value. (FRAME_SET_VISIBLE): New macro. * frame.c (make_terminal_frame, Fdelete_frame): Use FRAME_SET_VISIBLE. (Fframe_visible_p, Fvisible_frame_list): Use FRAME_VISIBLE_P and FRAME_ICONIFIED_P. * dispnew.c (Fredraw_display): Use the FRAME_VISIBLE_P and FRAME_GARBAGED_P accessors. * xdisp.c (redisplay): Use the FRAME_VISIBLE_P accessor. * xfns.c (x_set_foreground_color, x_set_background_color, x_set_cursor_color, x_set_border_pixel, x_set_icon_type): Use the FRAME_VISIBLE_P accessor. (Fx_create_frame): Use FRAME_SET_VISIBILITY. * xterm.c (clear_cursor, x_display_bar_cursor, x_display_box_cursor): Use FRAME_SET_VISIBILITY.
author Jim Blandy <jimb@redhat.com>
date Thu, 24 Dec 1992 06:19:31 +0000
parents 975c866af92d
children ba2fcbf5d6a1
line wrap: on
line source

;;; paths.el --- define pathnames for use by various Emacs commands.

;; Copyright (C) 1986, 1988 Free Software Foundation, Inc.

;; Maintainer: FSF
;; Keywords: internal

;; This file is part of GNU Emacs.

;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.

;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING.  If not, write to
;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

;;; Commentary:

;; These are default settings for names of certain files and directories
;; that Emacs needs to refer to from time to time.

;; If these settings are not right, override them with `setq'
;; in site-init.el.  Do not change this file.

;;; Code:

(defvar Info-default-directory-list
  (list "/usr/local/info/"
	"/usr/local/lib/info/"
	(expand-file-name "../info/" data-directory))
  "List of directories to search for Info documentation files.")

(defvar news-path "/usr/spool/news/"
  "The root directory below which all news files are stored.")

(defvar news-inews-program
  (cond ((file-exists-p "/usr/bin/inews") "/usr/bin/inews")
	((file-exists-p "/usr/local/inews") "/usr/local/inews")
	((file-exists-p "/usr/local/bin/inews") "/usr/local/bin/inews")
	((file-exists-p "/usr/lib/news/inews") "/usr/lib/news/inews")
	(t "inews"))
  "Program to post news.")

(defvar gnus-default-nntp-server ""
  ;; set this to your local server
  "The name of the host running an NNTP server.
If it is a string such as \":DIRECTORY\", then ~/DIRECTORY
is used as a news spool.  `gnus-nntp-server' is initialised from NNTPSERVER
environment variable or, if none, this value.")

(defvar gnus-nntp-service "nntp"
  "NNTP service name, usually \"nntp\" or 119).
Go to a local news spool if its value is nil, in which case `gnus-nntp-server'
should be set to `(system-name)'.")

(defvar gnus-your-domain nil
  "Your domain name without your host name like: \"stars.flab.Fujitsu.CO.JP\"
The DOMAINNAME environment variable is used instead if defined.  If
the function `system-name' returns a fully qualified domain name, there is no
need to define the name.")

(defvar gnus-your-organization ""
  "Your organization like: \"Fujitsu Laboratories Ltd., Kawasaki, Japan.\"
The `ORGANIZATION' environment variable is used instead if defined.")

(defvar mh-progs
  (cond ((file-directory-p "/usr/bin/mh/") "/usr/bin/mh/") ;Ultrix 4.2
	((file-directory-p "/usr/new/mh/") "/usr/new/mh/") ;Ultrix <4.2
        ((file-directory-p "/usr/local/bin/mh/") "/usr/local/bin/mh/")
        ((file-directory-p "/usr/local/mh/") "/usr/local/mh/")
        (t "/usr/local/bin/"))
  "Directory containing MH commands.")

(defvar mh-lib
  (cond ((file-directory-p "/usr/lib/mh/") "/usr/lib/mh/") ;Ultrix 4.2
	((file-directory-p "/usr/new/lib/mh/") "/usr/new/lib/mh/") ;Ultrix <4.2
        ((file-directory-p "/usr/local/lib/mh/") "/usr/local/lib/mh/")
        (t "/usr/local/bin/mh/"))
  "Directory of MH library.")

(defvar rmail-file-name "~/RMAIL"
  "Name of user's primary mail file.")

(defvar gnus-startup-file "~/.newsrc"
  "The file listing groups to which user is subscribed.
Will use `gnus-startup-file'-SERVER instead if exists.")

(defconst rmail-spool-directory
  (if (memq system-type '(dgux-unix hpux usg-unix-v unisoft-unix rtu
			  irix silicon-graphics-unix))
      "/usr/mail/"
    "/usr/spool/mail/")
  "Name of directory used by system mailer for delivering new mail.
Its name should end with a slash.")

(defconst sendmail-program
  (if (file-exists-p "/usr/lib/sendmail")
      "/usr/lib/sendmail"
    "fakemail")			;In ../etc, to interface to /bin/mail.
  "Program used to send messages.")

(defconst term-file-prefix (if (eq system-type 'vax-vms) "[.term]" "term/")
  "If non-nil, Emacs startup does (load (concat term-file-prefix (getenv \"TERM\")))
You may set this variable to nil in your `.emacs' file if you do not wish
the terminal-initialization file to be loaded.")

;; Solaris 2 has both of these files; prefer /usr/ucb/man
;; because the other has nonstandard argument conventions.
(defconst manual-program (if (file-exists-p "/usr/ucb/man")
			     "/usr/ucb/man" "/usr/bin/man")
  "Program to run to print man pages.")

;; Note that /usr/man/cat is not really right for this on sysV; nothing is,
;; judging by the list of directories below.  You can't get the dir
;; for a section by appending the section number to any one prefix.
;; But it turns out that a string that's wrong does no harm here.
(defconst manual-formatted-dir-prefix
  (if (file-exists-p "/usr/man/cat.C")  ;; Check for Xenix.
      "/usr/man/cat." "/usr/man/cat")
  "Prefix for directories containing formatted manual pages.
Append a section-number or section-name to get a directory name.")

(defconst manual-formatted-dirlist
  (cond ((eq system-type 'hpux)
	 '("/usr/man/cat1" "/usr/man/cat2" "/usr/man/cat3"
	   "/usr/man/cat4" "/usr/man/cat5" "/usr/man/cat6"
	   "/usr/man/cat7" "/usr/man/cat1m" "/usr/man/cat8"
	   "/usr/local/man/cat1" "/usr/local/man/cat2" "/usr/local/man/cat3"
	   "/usr/local/man/cat4" "/usr/local/man/cat5" "/usr/local/man/cat6"
	   "/usr/local/man/cat7" "/usr/local/man/cat1m" "/usr/local/man/cat8"
	   "/usr/contrib/man/cat1" "/usr/contrib/man/cat2"
	   "/usr/contrib/man/cat3" "/usr/contrib/man/cat4"
	   "/usr/contrib/man/cat5" "/usr/contrib/man/cat6"
	   "/usr/contrib/man/cat7" "/usr/contrib/man/cat1m"
	   "/usr/contrib/man/cat8"))
	 ((file-exists-p "/usr/man/cat.C")  ; Xenix
	  '("/usr/man/cat.C" "/usr/man/cat.CP" "/usr/man/cat.CT"
	    "/usr/man/cat.DOS/" "/usr/man/cat.F" "/usr/man/cat.HW"
	    "/usr/man/cat.M/" "/usr/man/cat.S" "/usr/man/cat.LOCAL"))
	 ((file-exists-p "/usr/man/cat3/cat3")
	  ;; This is for UMAX.
	  '("/usr/man/cat1"       "/usr/man/cat2"
	    "/usr/man/cat3"       "/usr/man/cat3/cat3"
	    "/usr/man/cat3/cat3b" "/usr/man/cat3/cat3c"
	    "/usr/man/cat3/cat3f" "/usr/man/cat3/cat3m"
	    "/usr/man/cat3/cat3n" "/usr/man/cat3/cat3p"
	    "/usr/man/cat3/cat3s" "/usr/man/cat3/cat3u"
	    "/usr/man/cat3/cat3x" "/usr/man/cat4"
	    "/usr/man/cat5"       "/usr/man/cat6"
	    "/usr/man/cat7"       "/usr/man/cat8"
	    "/usr/man/catl"       "/usr/man/catn"))
	 ((file-exists-p "/usr/man/cat1")
	  '("/usr/man/cat1" "/usr/man/cat2" "/usr/man/cat3"
	    "/usr/man/cat4" "/usr/man/cat5" "/usr/man/cat6"
	    "/usr/man/cat7" "/usr/man/cat8" "/usr/man/catl" "/usr/man/catn"))
	 (t
	   '("/usr/catman/u_man/man1" "/usr/catman/u_man/man6"
	     "/usr/catman/p_man/man2" "/usr/catman/p_man/man3"
	     "/usr/catman/p_man/man4" "/usr/catman/p_man/man5"
	     "/usr/catman/a_man/man1" "/usr/catman/a_man/man7"
	     "/usr/catman/a_man/man8" "/usr/catman/local"
	     "/usr/catman/a_man/man8" "/usr/catman/local/man1"
	     "/usr/catman/local/man2" "/usr/catman/local/man3"
	     "/usr/catman/local/man4" "/usr/catman/local/man5"
	     "/usr/catman/local/man6" "/usr/catman/local/man7"
	     "/usr/catman/local/man8")))
  "List of directories containing formatted manual pages.")

(defconst abbrev-file-name 
  (if (eq system-type 'vax-vms)
      "~/abbrev.def"
    "~/.abbrev_defs")
  "*Default name of file to read abbrevs from.")

;;; paths.el ends here