view src/ndir.h @ 12505:0f970ed476cb

restructured, largely rewritten without the bugs and extended to cover over 15 shells. Most variables can now work as a lookup table, and, unless set by user, do. (sh-mode-syntax-table): Possibly multiple tables. (sh-shell): Set initially so shell or other libraries may use features. (sh-assignment-regexp): Replaces `sh-assignment-space'. (sh-here-document-word): Set to more common "EOF". (sh-variables): Changed semantics. (sh-font-lock-keywords): Much nicer. (sh-ancestor-alist, sh-alias-alist, sh-shells, sh-abbrevs) (sh-dynamic-complete-functions, sh-require-final-newline) (sh-comment-prefix, sh-indentation, sh-header-marker, sh-builtins) (sh-leading-keywords): New variables. (sh-use-prefix, sh-find-file-modifies, sh-query-for-magic) (sh-magicless-file-regexp, magic-number-alist, sh-executable) (sh-chmod-argument, sh-shell-is-csh, sh-tab-width) (sh-sh-font-lock-keywords, sh-ksh-font-lock-keywords) (sh-bash-font-lock-keywords, sh-csh-font-lock-keywords) (sh-tcsh-font-lock-keywords): Variables deleted, see also executable.el. (sh-mode): Shell dependent code moved to `sh-set-shell'. (sh-feature, sh-abbrevs, sh-syntax-table, sh-append, sh-modify): New functions. (sh-execute-region): New command. (sh-indexed-loop): Far more efficient code generated for sh. (sh-repeat, sh-tmp-file, sh-while-getopts): New skeletons. (sh-or-other-mode, define-sh-skeleton, sh-executable, sh-chmod) (sh-query-for-variable): Command deleted.
author Karl Heuer <kwzh@gnu.org>
date Fri, 07 Jul 1995 19:48:24 +0000
parents b8fc349121d1
children 695cf19ef79e
line wrap: on
line source

/*
	<dir.h> -- definitions for 4.2BSD-compatible directory access

	last edit:	09-Jul-1983	D A Gwyn
*/

#ifdef VMS
#ifndef FAB$C_BID
#include <fab.h>
#endif
#ifndef NAM$C_BID
#include <nam.h>
#endif
#ifndef RMS$_SUC
#include <rmsdef.h>
#endif
#include "vmsdir.h"
#endif /* VMS */

#define DIRBLKSIZ	512		/* size of directory block */
#ifdef VMS
#define MAXNAMLEN	(DIR$S_NAME + 7) /* 80 plus room for version #.  */
#define MAXFULLSPEC	NAM$C_MAXRSS /* Maximum full spec */
#else
#ifdef WINDOWSNT
#define MAXNAMLEN	255
#else  /* not WINDOWSNT */
#define MAXNAMLEN	15		/* maximum filename length */
#endif /* not WINDOWSNT */
#endif /* VMS */
	/* NOTE:  MAXNAMLEN must be one less than a multiple of 4 */

struct direct				/* data from readdir() */
	{
	long		d_ino;		/* inode number of entry */
	unsigned short	d_reclen;	/* length of this record */
	unsigned short	d_namlen;	/* length of string in d_name */
	char		d_name[MAXNAMLEN+1];	/* name of file */
	};

typedef struct
	{
	int	dd_fd;			/* file descriptor */
	int	dd_loc;			/* offset in block */
	int	dd_size;		/* amount of valid data */
	char	dd_buf[DIRBLKSIZ];	/* directory block */
	}	DIR;			/* stream data from opendir() */

extern DIR		*opendir();
extern struct direct	*readdir();
extern long		telldir();
extern void		seekdir();
extern void		closedir();

#define rewinddir( dirp )	seekdir( dirp, 0L )