#include "systime.h"
#include "sysdep.h"
#include "syspwd.h"
+#include "sysfile.h" /* for getcwd */
/* Some static data, and a function to initialize it for each run */
Lisp_Object Vuser_full_name;
EXFUN (Fuser_full_name, 1);
-char *get_system_name (void);
-
Lisp_Object Qformat;
Lisp_Object Qpoint, Qmark, Qregion_beginning, Qregion_end;
DEFUN ("point-min", Fpoint_min, 0, 1, 0, /*
Return the minimum permissible value of point in BUFFER.
-This is 1, unless narrowing (a buffer restriction) is in effect.
+This is 1, unless narrowing (a buffer restriction)
+is in effect, in which case it may be greater.
If BUFFER is nil, the current buffer is assumed.
*/
(buffer))
DEFUN ("point-min-marker", Fpoint_min_marker, 0, 1, 0, /*
Return a marker to the minimum permissible value of point in BUFFER.
-This is the beginning, unless narrowing (a buffer restriction) is in effect.
+This is the beginning, unless narrowing (a buffer restriction)
+is in effect, in which case it may be greater.
If BUFFER is nil, the current buffer is assumed.
*/
(buffer))
DEFUN ("point-max", Fpoint_max, 0, 1, 0, /*
Return the maximum permissible value of point in BUFFER.
This is (1+ (buffer-size)), unless narrowing (a buffer restriction)
-is in effect, in which case it is less.
+is in effect, in which case it may be less.
If BUFFER is nil, the current buffer is assumed.
*/
(buffer))
}
DEFUN ("point-max-marker", Fpoint_max_marker, 0, 1, 0, /*
-Return a marker to the maximum permissible value of point BUFFER.
+Return a marker to the maximum permissible value of point in BUFFER.
This is (1+ (buffer-size)), unless narrowing (a buffer restriction)
-is in effect, in which case it is less.
+is in effect, in which case it may be less.
If BUFFER is nil, the current buffer is assumed.
*/
(buffer))
}
DEFUN ("char-after", Fchar_after, 0, 2, 0, /*
-Return character in BUFFER at position POS.
-POS is an integer or a buffer pointer.
+Return the character at position POS in BUFFER.
+POS is an integer or a marker.
If POS is out of range, the value is nil.
-If BUFFER is nil, the current buffer is assumed.
if POS is nil, the value of point is assumed.
+If BUFFER is nil, the current buffer is assumed.
*/
(pos, buffer))
{
}
DEFUN ("char-before", Fchar_before, 0, 2, 0, /*
-Return character in BUFFER before position POS.
-POS is an integer or a buffer pointer.
+Return the character preceding position POS in BUFFER.
+POS is an integer or a marker.
If POS is out of range, the value is nil.
-If BUFFER is nil, the current buffer is assumed.
if POS is nil, the value of point is assumed.
+If BUFFER is nil, the current buffer is assumed.
*/
(pos, buffer))
{
struct buffer *b = decode_buffer (buffer, 1);
- Bufpos n = ((NILP (pos) ? BUF_PT (b) :
- get_buffer_pos_char (b, pos, GB_NO_ERROR_IF_BAD)));
+ Bufpos n = (NILP (pos) ? BUF_PT (b) :
+ get_buffer_pos_char (b, pos, GB_NO_ERROR_IF_BAD));
n--;
(uid))
{
char *returned_name;
- int local_uid;
+ uid_t local_uid;
if (!NILP (uid))
{
CHECK_INT (uid);
- local_uid = XINT(uid);
- returned_name = user_login_name(&local_uid);
+ local_uid = XINT (uid);
+ returned_name = user_login_name (&local_uid);
}
else
{
- returned_name = user_login_name(NULL);
+ returned_name = user_login_name (NULL);
}
/* #### - I believe this should return nil instead of "unknown" when pw==0
pw=0 is indicated by a null return from user_login_name
corresponds to a nil argument to Fuser_login_name.
*/
char*
-user_login_name (int *uid)
+user_login_name (uid_t *uid)
{
- struct passwd *pw = NULL;
-
/* uid == NULL to return name of this user */
if (uid != NULL)
{
- pw = getpwuid (*uid);
+ struct passwd *pw = getpwuid (*uid);
return pw ? pw->pw_name : NULL;
}
else
return (user_name);
else
{
- pw = getpwuid (geteuid ());
+ struct passwd *pw = getpwuid (geteuid ());
#ifdef __CYGWIN32__
/* Since the Cygwin environment may not have an /etc/passwd,
return "unknown" instead of the null if the username
return Fcopy_sequence (Vsystem_name);
}
-/* For the benefit of callers who don't want to include lisp.h.
- Caller must free! */
-char *
-get_system_name (void)
-{
- return xstrdup ((char *) XSTRING_DATA (Vsystem_name));
-}
-
DEFUN ("emacs-pid", Femacs_pid, 0, 0, 0, /*
Return the process ID of Emacs, as an integer.
*/
%p is replaced by AM or PM, as appropriate.
%r is a synonym for "%I:%M:%S %p".
%R is a synonym for "%H:%M".
+%s is replaced by the time in seconds since 00:00:00, Jan 1, 1970 (a
+ nonstandard extension)
%S is replaced by the second (00-60).
%t is a synonym for "\\t".
%T is a synonym for "%H:%M:%S".
? Qt : Qnil;
}
-DEFUN ("char=", Fchar_Equal, 2, 3, 0, /*
+DEFUN ("char=", Fchar_Equal, 2, 2, 0, /*
Return t if two characters match, case is significant.
Both arguments must be characters (i.e. NOT integers).
-The optional buffer argument is for symmetry and is ignored.
*/
- (c1, c2, buffer))
+ (c1, c2))
{
CHECK_CHAR_COERCE_INT (c1);
CHECK_CHAR_COERCE_INT (c2);
- return XCHAR(c1) == XCHAR(c2) ? Qt : Qnil;
+ return EQ (c1, c2) ? Qt : Qnil;
}
\f
#if 0 /* Undebugged FSFmacs code */