view src/ndir.h @ 53180:a0409e91c835

(Vdisplay_pixels_per_inch): New variable. (Vshow_text_cursor_in_void): New variable. (glyph_to_pixel_coords): Don't use negative hpos. (x_y_to_hpos_vpos): Fix for partially visible first glyph. (append_stretch_glyph): Change ascent arg to be actual value in pixels rather than ratio to height. Callers changed. (calc_pixel_width_or_height): New aux function, implementing pixel based artihmetic for glyph widths and heights. (produce_stretch_glyph): Use calc_pixel_width_or_height for :width, :height, :align-to, and :ascent, thus allowing these to be specified in pixels as well as multiples of characters. Don't produce stretch glyphs with zero width or height. (get_specified_cursor_type): Declare static. (get_window_cursor_type): Declare static. Add glyph arg to be able to know when cursor is on an image; always substitute hollow-box cursor for filled-box cursor on images, to avoid negative images and flicker when blinking the cursor. (display_and_set_cursor): Pass glyph to get_window_cursor_type. (note_mode_line_or_margin_highlight): Use non-text cursor rather than vertical scroll-bar cursor in display margins. (note_mouse_highlight): Use non-text cursor rather than text cursor in fringes and over images in the text area. Use non-text cursor when mouse pointer is outside editable text, i.e. in the void after end-of-line or end-of-buffer; this was already done for W32, but is now standard for all systems -- user can toggle show-text-cursor-in-void to get old behaviour. (syms_of_xdisp): DEFVAR_LISP Vshow_text_cursor_in_void and Vdisplay_pixels_per_inch.
author Kim F. Storm <storm@cua.dk>
date Thu, 27 Nov 2003 21:17:23 +0000
parents 695cf19ef79e
children 9511dc88835c 375f2633d815
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 )

/* arch-tag: aea50570-ffb7-43fd-b423-7743b10fbe6e
   (do not change this comment) */