Mercurial > emacs
view oldXMenu/Destroy.c @ 83421:bb2edc915032
Implement automatic terminal-local environment variables via `local-environment-variables'.
* lisp/env.el (setenv, getenv): Add optional terminal parameter. Update docs.
(setenv): Handle `local-environment-variables'.
(read-envvar-name): Also allow (and complete) local
environment variables on the current terminal.
* src/callproc.c: Include frame.h and termhooks.h, for terminal parameters.
(Qenvironment): New constant.
(Vlocal_environment_variables): New variable.
(syms_of_callproc): Register and initialize them.
(child_setup): Handle Vlocal_environment_variables.
(getenv_internal): Add terminal parameter. Handle
Vlocal_environment_variables.
(Fgetenv_internal): Add terminal parameter.
* src/termhooks.h (get_terminal_param): Declare.
* src/Makefile.in (callproc.o): Update dependencies.
* mac/makefile.MPW (callproc.c.x): Update dependencies.
* lisp/termdev.el (terminal-id): Make parameter optional.
(terminal-getenv, terminal-setenv, with-terminal-environment):
Disable functions.
* lisp/mule-cmds.el (set-locale-environment): Convert `terminal-getenv' calls
to `getenv'.
* lisp/rxvt.el (rxvt-set-background-mode): Ditto.
* lisp/x-win.el (x-initialize-window-system): Ditto.
* lisp/xterm.el (terminal-init-xterm): Ditto.
* lisp/server.el (server-process-filter): Fix reference to the 'display frame
parameter.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-461
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Mon, 26 Dec 2005 02:14:10 +0000 |
parents | 532e0a9335a9 |
children | d04d8ccb3c41 |
line wrap: on
line source
#include "copyright.h" /* Copyright Massachusetts Institute of Technology 1985 */ /* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */ /* * XMenu: MIT Project Athena, X Window system menu package * * XMenuDestroy - Free all resources associated with and XMenu. * * Author: Tony Della Fera, DEC * August, 1985 * */ #include "XMenuInt.h" XMenuDestroy(display, menu) Display *display; register XMenu *menu; /* Menu object to destroy. */ { register XMPane *p_ptr; /* Pointer to the current pane. */ register XMPane *p_next; /* Pointer to the next pane. */ register XMSelect *s_ptr; /* Pointer to the current selection. */ register XMSelect *s_next; /* Pointer to the next selection. */ /* * Destroy the selection and pane X windows and free * their corresponding XMWindows. */ for ( p_ptr = menu->p_list->next; p_ptr != menu->p_list; p_ptr = p_next ) { for ( s_ptr = p_ptr->s_list->next; s_ptr != p_ptr->s_list; s_ptr = s_next ) { s_next = s_ptr->next; free(s_ptr); } if (p_ptr->window) { XDestroySubwindows(display, p_ptr->window); XDestroyWindow(display, p_ptr->window); } p_next = p_ptr->next; free(p_ptr); } /* * Destroy the association table. */ XDestroyAssocTable(menu->assoc_tab); /* * Free the mouse cursor. */ XFreeCursor(display, menu->mouse_cursor); /* * Free the fonts. */ XFreeFont(display, menu->p_fnt_info); XFreeFont(display, menu->s_fnt_info); /* * Free the pixmaps. */ /* XFreePixmap(display, menu->p_bdr_pixmap); XFreePixmap(display, menu->s_bdr_pixmap); XFreePixmap(display, menu->p_frg_pixmap); XFreePixmap(display, menu->s_frg_pixmap); XFreePixmap(display, menu->bkgnd_pixmap); */ XFreePixmap(display, menu->inact_pixmap); /* * Free the color cells. */ if ((menu->p_bdr_color != BlackPixel(display, DefaultScreen(display))) && (menu->p_bdr_color != WhitePixel(display, DefaultScreen(display)))) XFreeColors( display, DefaultColormap(display, DefaultScreen(display)), &menu->p_bdr_color, 1, 0); if ((menu->s_bdr_color != BlackPixel(display, DefaultScreen(display))) && (menu->s_bdr_color != WhitePixel(display, DefaultScreen(display)))) XFreeColors( display, DefaultColormap(display, DefaultScreen(display)), &menu->s_bdr_color, 1, 0); if ((menu->p_frg_color != BlackPixel(display, DefaultScreen(display))) && (menu->p_frg_color != WhitePixel(display, DefaultScreen(display)))) XFreeColors( display, DefaultColormap(display, DefaultScreen(display)), &menu->p_frg_color, 1, 0); if ((menu->s_frg_color != BlackPixel(display, DefaultScreen(display))) && (menu->s_frg_color != WhitePixel(display, DefaultScreen(display)))) XFreeColors( display, DefaultColormap(display, DefaultScreen(display)), &menu->s_frg_color, 1, 0); if ((menu->bkgnd_color != BlackPixel(display, DefaultScreen(display))) && (menu->bkgnd_color != WhitePixel(display, DefaultScreen(display)))) XFreeColors( display, DefaultColormap(display, DefaultScreen(display)), &menu->bkgnd_color, 1, 0); /* * Free the XMenu. */ free(menu); } /* arch-tag: 44c9589f-5893-46fc-bc23-1b03a7f9c015 (do not change this comment) */