Plan 9 from Bell Labs’s /sys/src/libcontrol/editcontrol.h

Copyright © 2021 Plan 9 Foundation
Distributed under the MIT License.
Download the Plan 9 distribution.


typedef struct Position Position;
typedef struct String String;
typedef struct Stringset Stringset;
typedef struct Undo Undo;

enum{
	Noop,
	Insert,
	Delete,
	Split,
	Join,
};

enum
{
	Nextalso,
};

struct Position
{
	int	str;
	int	rn;
};

struct Undo
{
	int	n;
	int	op;
	int	flags;
	Position p;
	String	*s;
	Undo	*next;
	Undo	*prev;
};

struct String
{
	char	*context;
	Rune	*r;
	int	n;
	int	ref;

};

struct Stringset
{
	QLock;
	Control	*c;
	String	**string;
	int	nstring;
	int	nalloc;
	String	**snarf;
	int	nsnarf;
	int	undogrouplevel;
	Undo	undohome;
	Undo	*undobegin;
	Undo	*undostate;
};

String*	allocstring(char*, char*);
void	cut(Stringset *ss, Position, Position);
void	delete(Stringset *ss, int);
void	freestring(String*);
void	freestringset(Stringset*);
void	insert(Stringset*, int, String*);
void	join(Stringset*, Position);
Stringset* newstringset(char*);
void	paste(Stringset*, Position, String**, int);
void	redo(Stringset*);
void	snarf(Stringset*, Position, Position);
void	split(Stringset*s, Position);
Stringset* stringsetnamed(char*);
String*	stringof(Stringset*, Position);
void	undo(Stringset*);

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@plan9.bell-labs.com.