# HG changeset patch # User jwe # Date 1133319885 0 # Node ID 5cc01ba4c0525c7808b10a48c925fcd99f792be8 # Parent 8b0b36c2dc0cc28fc0dc3ecf48e8d9d1cfba4981 [project @ 2005-11-30 03:04:44 by jwe] diff -r 8b0b36c2dc0c -r 5cc01ba4c052 ChangeLog --- a/ChangeLog Tue Nov 29 17:41:33 2005 +0000 +++ b/ChangeLog Wed Nov 30 03:04:45 2005 +0000 @@ -1,3 +1,9 @@ +2005-11-29 Rafael Laboissiere + + * emacs/octave-mod.el: Ensure that key bindings for + octave-mark-defun and backward-kill-word work in both XEmacs and + GNU Emacs. + 2005-11-28 John W. Eaton * configure.in: Check for uname. diff -r 8b0b36c2dc0c -r 5cc01ba4c052 emacs/octave-mod.el --- a/emacs/octave-mod.el Tue Nov 29 17:41:33 2005 +0000 +++ b/emacs/octave-mod.el Wed Nov 30 03:04:45 2005 +0000 @@ -203,6 +203,9 @@ (defvar inferior-octave-process nil) +(defvar octave-xemacs-p + (string-match "XEmacs\\|Lucid" emacs-version)) + (defvar octave-mode-map nil "Keymap used in Octave mode.") (if octave-mode-map @@ -219,6 +222,8 @@ (define-key map "\M-\C-a" 'octave-beginning-of-defun) (define-key map "\M-\C-e" 'octave-end-of-defun) (define-key map "\M-\C-h" 'octave-mark-defun) + (if octave-xemacs-p + (define-key map [(meta backspace)] 'backward-kill-word)) (define-key map "\M-\C-q" 'octave-indent-defun) (define-key map "\C-c;" 'octave-comment-region) (define-key map "\C-c:" 'octave-uncomment-region) @@ -638,9 +643,6 @@ (delete-horizontal-space) (insert (concat " " octave-continuation-string)))) -(defvar octave-xemacs-p - (string-match "XEmacs\\|Lucid" emacs-version)) - ;;; Comments (defun octave-comment-region (beg end &optional arg) "Comment or uncomment each line in the region as Octave code. diff -r 8b0b36c2dc0c -r 5cc01ba4c052 scripts/ChangeLog --- a/scripts/ChangeLog Tue Nov 29 17:41:33 2005 +0000 +++ b/scripts/ChangeLog Wed Nov 30 03:04:45 2005 +0000 @@ -1,3 +1,15 @@ +2005-11-29 John W. Eaton + + * miscellaneous/ver.m: Use new uname built-in function instead of + calling system. Only append octave_forge_string if + OCTAVE_FORGE_VERSION exists. Use puts instead of disp. + Call license instead of hard-coding license info here. + + * miscellaneous/license.m: Use persistent instead of global for + __octave_licenses__. Use puts instad of disp. + Use getuid and getpwuid instead of calling unix ("id -un"). + If nargout = 1, return license info instead of printing usage message. + 2005-11-29 William Poetra Yoga Hadisoeseno * miscellaneous/ver.m: New file. diff -r 8b0b36c2dc0c -r 5cc01ba4c052 scripts/miscellaneous/license.m --- a/scripts/miscellaneous/license.m Tue Nov 29 17:41:33 2005 +0000 +++ b/scripts/miscellaneous/license.m Wed Nov 30 03:04:45 2005 +0000 @@ -19,38 +19,22 @@ ## -*- texinfo -*- ## @deftypefn {Function File} {} license -## @deftypefnx {Function File} {} license ("inuse") -## @deftypefnx {Function File} {@var{retval}} = license ("inuse") -## @deftypefnx {Function File} {@var{retval}} = license ("test", @var{feature}) -## @deftypefnx {Function File} {} license ("test", @var{feature}, @var{toggle}) -## @deftypefnx {Function File} {@var{retval}} = license ("checkout", @var{feature}) ## Display the license of Octave. ## -## @itemize +## @deftypefnx {Function File} {} license ("inuse") +## Display a list of packages currently being used. ## -## @item -## @code{license} displays the license of Octave (GNU GPL v2). -## -## @item -## @code{license ("inuse")} also displays a list of products currently -## being used. +## @deftypefnx {Function File} {@var{retval}} = license ("inuse") +## Return a structure containing the fields @code{feature} and @code{user}. ## -## @item -## @code{@var{retval} = license ("inuse")} returns a structure which has -## two fields: @code{feature} is the product name ("Octave") and -## @code{user} is the current username (only works on Unix systems; on -## Windows systems it contains "octave_user"). +## @deftypefnx {Function File} {@var{retval}} = license ("test", @var{feature}) +## Return 1 if a license exists for the product identified by the string +## @var{feature} and 0 otherwise. The argument @var{feature} is case +## insensitive and only the first 27 characters are checked. ## -## @item -## @code{@var{retval} = license ("test", @var{feature})} returns 1 if a -## license exists for the product identified by the string @var{feature} -## and 0 otherwise. @var{feature} is case insensitive and only the first -## 27 characters are checked. -## -## @item -## @code{license ("test", @var{feature}, @var{toggle})} enables or disables -## license testing for @var{feature}, depending on @var{toggle}, which -## can be one of: +## @deftypefnx {Function File} {} license ("test", @var{feature}, @var{toggle}) +## Enable or disable license testing for @var{feature}, depending on +## @var{toggle}, which may be one of: ## ## @table @samp ## @item "enable" @@ -60,12 +44,11 @@ ## Future tests for the specified license of @var{feature} return 0. ## @end table ## -## @item -## @code{@var{retval} = license ("checkout", @var{feature})} checks out -## a license for @var{feature}, returning 1 on success and 0 on failure. +## @deftypefnx {Function File} {@var{retval}} = license ("checkout", @var{feature}) +## Check out a license for @var{feature}, returning 1 on success and 0 +## on failure. ## -## @end itemize -## +## This function is provided for compatibility with @sc{Matlab}. ## @end deftypefn ## @seealso{ver, version} @@ -73,7 +56,7 @@ function retval = license (varargin) - global __octave_licenses__ + persistent __octave_licenses__; if (isempty (__octave_licenses__)) __octave_licenses__ = cell (); @@ -97,26 +80,24 @@ if (nin == 0) - if (nout == 0) - - found = false; - for p = 1:nr_licenses - if (strcmp (__octave_licenses__{p,1}, "Octave")) - found = true; - break; - endif - endfor + found = false; + for p = 1:nr_licenses + if (strcmp (__octave_licenses__{p,1}, "Octave")) + found = true; + break; + endif + endfor - if (found) - disp (__octave_licenses__{p,2}); - else - disp ("unknown"); - endif + if (found) + result = __octave_licenses__{p,2}; + else + result = "unknown"; + endif + if (nout == 0) + printf ("%s\n", result); else - - usage ("license"); - + retval = result; endif elseif (nin == 1) @@ -128,7 +109,7 @@ endif for p = 1:nr_licenses - disp (__octave_licenses__{p,1}); + printf ("%s\n", __octave_licenses__{p,1}); endfor else @@ -137,15 +118,11 @@ usage ("retval = license (\"inuse\")"); endif - if (isunix) - [t, username] = unix ("id -un"); - if (t == 0) - username = username(1:end-1); - else - username = "octave_user"; - endif + pw = getpwuid (getuid ()); + if (isstruct (pw)) + username = pw.name; else - username = "octave_user"; + username = "octave_user"; endif retval(1:nr_licenses) = struct ("feature", "", "user", ""); diff -r 8b0b36c2dc0c -r 5cc01ba4c052 scripts/miscellaneous/ver.m --- a/scripts/miscellaneous/ver.m Tue Nov 29 17:41:33 2005 +0000 +++ b/scripts/miscellaneous/ver.m Wed Nov 30 03:04:45 2005 +0000 @@ -33,19 +33,20 @@ usage ("ver"); endif - octave_license = "GNU General Public License, Version 2"; + octave_license = license (); + + [unm, status] = uname (); - if (isunix) - os_string = system ("uname -srvm")(1:end-1); - elseif (ispc) - os_string = "Microsoft Windows"; + if (status < 0) + os_string = "unknown"; else - os_string = "unknown"; + os_string = sprintf ("%s %s %s %s", unm.sysname, unm.release, + unm.version, unm.machine); endif hbar(1:70) = "-"; ver_line1 = "GNU Octave Version "; - ver_line2 = "GNU Octave License "; + ver_line2 = "GNU Octave License: "; ver_line3 = "Operating System: "; ver_desc = sprintf ("%s\n%s%s\n%s%s\n%s%s\n%s\n", hbar, ver_line1, version, @@ -59,9 +60,9 @@ - length (octave_forge_name) - length (octave_forge_version)), octave_forge_version); + ver_desc = strcat (ver_desc, octave_forge_string); endif - ver_desc = strcat (ver_desc, octave_forge_string); - disp (ver_desc); + puts (ver_desc); endfunction