119304Speter/*- 219304Speter * Copyright (c) 1992, 1993, 1994 319304Speter * The Regents of the University of California. All rights reserved. 419304Speter * Copyright (c) 1992, 1993, 1994, 1995, 1996 519304Speter * Keith Bostic. All rights reserved. 619304Speter * 719304Speter * See the LICENSE file for redistribution information. 819304Speter * 9254225Speter * $Id: mark.h,v 10.6 2011/07/04 14:41:51 zy Exp $ 1019304Speter */ 1119304Speter 1219304Speter/* 1319304Speter * The MARK and LMARK structures define positions in the file. There are 1419304Speter * two structures because the mark subroutines are the only places where 1519304Speter * anything cares about something other than line and column. 1619304Speter * 1719304Speter * Because of the different interfaces used by the db(3) package, curses, 1819304Speter * and users, the line number is 1 based and the column number is 0 based. 1919304Speter * Additionally, it is known that the out-of-band line number is less than 2019304Speter * any legal line number. The line number is of type recno_t, as that's 2119304Speter * the underlying type of the database. The column number is of type size_t, 2219304Speter * guaranteeing that we can malloc a line. 2319304Speter */ 2419304Speterstruct _mark { 2519304Speter#define OOBLNO 0 /* Out-of-band line number. */ 2619304Speter recno_t lno; /* Line number. */ 2719304Speter size_t cno; /* Column number. */ 2819304Speter}; 2919304Speter 3019304Speterstruct _lmark { 31254225Speter SLIST_ENTRY(_lmark) q; /* Linked list of marks. */ 3219304Speter recno_t lno; /* Line number. */ 3319304Speter size_t cno; /* Column number. */ 34254225Speter /* XXXX Needed ? Can non ascii-chars be mark names ? */ 3519304Speter CHAR_T name; /* Mark name. */ 3619304Speter 3719304Speter#define MARK_DELETED 0x01 /* Mark was deleted. */ 3819304Speter#define MARK_USERSET 0x02 /* User set this mark. */ 3919304Speter u_int8_t flags; 4019304Speter}; 4119304Speter 4219304Speter#define ABSMARK1 '\'' /* Absolute mark name. */ 4319304Speter#define ABSMARK2 '`' /* Absolute mark name. */ 44