mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-03-25 08:12:11 -07:00
Oops. missed file from changelist 179018.
Copied from Perforce Change: 179020 ServerID: perforce.ravenbrook.com
This commit is contained in:
parent
0de90204e0
commit
8ee895e48d
1 changed files with 17 additions and 44 deletions
|
|
@ -70,7 +70,6 @@ struct EventProcStruct {
|
|||
/* eventTypes -- an array containing info about the event types */
|
||||
|
||||
typedef struct {
|
||||
EventType type;
|
||||
char *name;
|
||||
EventCode code;
|
||||
size_t length;
|
||||
|
|
@ -78,7 +77,7 @@ typedef struct {
|
|||
} eventRecord;
|
||||
|
||||
#define EVENT0_FORMAT() ""
|
||||
/* for i in range(1,20): print "#define EVENT%d_FORMAT(%s) %s" % (i, ", ".join(["p%d" % j for j in range(0, i)]), " ".join(["#p%d" % j for j in range(0, i)])) */
|
||||
/* for i in range(1,15): print "#define EVENT%d_FORMAT(%s) %s" % (i, ", ".join(["p%d" % j for j in range(0, i)]), " ".join(["#p%d" % j for j in range(0, i)])) */
|
||||
#define EVENT1_FORMAT(p0) #p0
|
||||
#define EVENT2_FORMAT(p0, p1) #p0 #p1
|
||||
#define EVENT3_FORMAT(p0, p1, p2) #p0 #p1 #p2
|
||||
|
|
@ -94,15 +93,11 @@ typedef struct {
|
|||
#define EVENT13_FORMAT(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) #p0 #p1 #p2 #p3 #p4 #p5 #p6 #p7 #p8 #p9 #p10 #p11 #p12
|
||||
#define EVENT14_FORMAT(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) #p0 #p1 #p2 #p3 #p4 #p5 #p6 #p7 #p8 #p9 #p10 #p11 #p12 #p13
|
||||
#define EVENT15_FORMAT(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) #p0 #p1 #p2 #p3 #p4 #p5 #p6 #p7 #p8 #p9 #p10 #p11 #p12 #p13 #p14
|
||||
#define EVENT16_FORMAT(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) #p0 #p1 #p2 #p3 #p4 #p5 #p6 #p7 #p8 #p9 #p10 #p11 #p12 #p13 #p14 #p15
|
||||
#define EVENT17_FORMAT(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16) #p0 #p1 #p2 #p3 #p4 #p5 #p6 #p7 #p8 #p9 #p10 #p11 #p12 #p13 #p14 #p15 #p16
|
||||
#define EVENT18_FORMAT(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17) #p0 #p1 #p2 #p3 #p4 #p5 #p6 #p7 #p8 #p9 #p10 #p11 #p12 #p13 #p14 #p15 #p16 #p17
|
||||
#define EVENT19_FORMAT(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18) #p0 #p1 #p2 #p3 #p4 #p5 #p6 #p7 #p8 #p9 #p10 #p11 #p12 #p13 #p14 #p15 #p16 #p17 #p18
|
||||
|
||||
static eventRecord eventTypes[] = {
|
||||
{0, "(unused)", 0, 0, "0"},
|
||||
{"(unused)", 0, 0, "0"},
|
||||
#define EVENT_INIT(X, name, code, always, kind, count, format) \
|
||||
{Event##name, #name, code, \
|
||||
{#name, code, \
|
||||
EventSizeAlign(sizeof(Event##name##Struct)), EVENT##count##_FORMAT format},
|
||||
EVENT_LIST(EVENT_INIT, X)
|
||||
};
|
||||
|
|
@ -110,20 +105,6 @@ static eventRecord eventTypes[] = {
|
|||
#define eventTypeCount (sizeof(eventTypes) / sizeof(eventRecord))
|
||||
|
||||
|
||||
/* eventType2Index -- find index in eventTypes for the given type */
|
||||
|
||||
static size_t eventType2Index(EventType type)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
for(i = 0; i < eventTypeCount; ++i)
|
||||
if (eventTypes[i].type == type)
|
||||
return i;
|
||||
error("Unknown event type %0"PRIwWORD PRIXLONGEST, (ulongest_t)type);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* eventcode2Index -- find index in eventTypes for the given code */
|
||||
|
||||
static size_t eventCode2Index(EventCode code, Bool errorp)
|
||||
|
|
@ -171,16 +152,6 @@ char *EventCode2Format(EventCode code)
|
|||
}
|
||||
|
||||
|
||||
/* EventGetCode -- get event code of the given event */
|
||||
|
||||
EventCode EventGetCode(Event event)
|
||||
{
|
||||
size_t i = eventType2Index(event->any.code);
|
||||
assert(eventTypes[i].code <= EventCodeMAX);
|
||||
return eventTypes[i].code;
|
||||
}
|
||||
|
||||
|
||||
Bool EventCodeIsValid(EventCode code)
|
||||
{
|
||||
return (eventCode2Index(code, FALSE) != 0);
|
||||
|
|
@ -276,14 +247,15 @@ Res EventRead(Event *eventReturn, EventProc proc)
|
|||
{
|
||||
size_t eventIndex, length;
|
||||
Res res;
|
||||
EventType type;
|
||||
EventCode code;
|
||||
Event event;
|
||||
void *restOfEvent;
|
||||
|
||||
res = proc->reader(proc->readerP, &type, sizeof(EventType));
|
||||
if (res != ResOK) return res;
|
||||
res = proc->reader(proc->readerP, &code, sizeof(EventCode));
|
||||
if (res != ResOK)
|
||||
return res;
|
||||
|
||||
eventIndex = eventType2Index(type);
|
||||
eventIndex = eventCode2Index(code, TRUE);
|
||||
length = eventTypes[eventIndex].length;
|
||||
if (proc->cachedEvent != NULL) {
|
||||
event = proc->cachedEvent;
|
||||
|
|
@ -294,13 +266,14 @@ Res EventRead(Event *eventReturn, EventProc proc)
|
|||
if (event == NULL) return ResMEMORY;
|
||||
}
|
||||
|
||||
event->any.code = type;
|
||||
restOfEvent = PointerAdd(event, sizeof(EventType));
|
||||
if (type == EventIntern) { /* the only string event */
|
||||
event->any.code = code;
|
||||
restOfEvent = PointerAdd(event, sizeof(EventCode));
|
||||
if (code == EventInternCode) { /* the only string event */
|
||||
/* read enough to get the length */
|
||||
res = proc->reader(proc->readerP, restOfEvent,
|
||||
internStrOffset - sizeof(EventType));
|
||||
if (res != ResOK) return res;
|
||||
internStrOffset - sizeof(EventCode));
|
||||
if (res != ResOK)
|
||||
return res;
|
||||
/* read the rest */
|
||||
res = proc->reader(proc->readerP, &event->Intern.f1.str,
|
||||
/* Length must agree with EVENT_WS. */
|
||||
|
|
@ -309,7 +282,7 @@ Res EventRead(Event *eventReturn, EventProc proc)
|
|||
if (res != ResOK) return res;
|
||||
} else {
|
||||
res = proc->reader(proc->readerP, restOfEvent,
|
||||
length - sizeof(EventType));
|
||||
length - sizeof(EventCode));
|
||||
if (res != ResOK) return res;
|
||||
}
|
||||
*eventReturn = event;
|
||||
|
|
@ -328,7 +301,7 @@ Res EventRecord(EventProc proc, Event event, Word etime)
|
|||
Res res;
|
||||
|
||||
switch(event->any.code) {
|
||||
case EventIntern: { /* id, label */
|
||||
case EventInternCode: { /* id, label */
|
||||
Symbol sym = malloc(sizeof(symbolStruct));
|
||||
|
||||
if (sym == NULL) return ResMEMORY;
|
||||
|
|
@ -340,7 +313,7 @@ Res EventRecord(EventProc proc, Event event, Word etime)
|
|||
}
|
||||
res = TableDefine(proc->internTable, sym->id, sym);
|
||||
} break;
|
||||
case EventLabel: { /* addr, id */
|
||||
case EventLabelCode: { /* addr, id */
|
||||
Label label = malloc(sizeof(labelStruct));
|
||||
void *entry;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue