Skip to content

Commit

Permalink
Letting owl::queue_message set more fields of the message
Browse files Browse the repository at this point in the history
  • Loading branch information
nelhage committed Dec 24, 2006
1 parent fe0a16a commit 17eed9c
Showing 1 changed file with 12 additions and 3 deletions.
15 changes: 12 additions & 3 deletions perlglue.xs
Original file line number Diff line number Diff line change
Expand Up @@ -121,11 +121,11 @@ void queue_message(msg)
if(!SvROK(msg) || SvTYPE(SvRV(msg)) != SVt_PVHV) {
croak("Usage: owl::queue_message($message)");
}

hash = (HV*)SvRV(msg);
m = owl_malloc(sizeof(owl_message));
owl_message_init(m);

count = hv_iterinit(hash);
while((ent = hv_iternext(hash))) {
key = hv_iterkey(ent, &len);
Expand All @@ -134,11 +134,20 @@ void queue_message(msg)
owl_message_set_type(m, owl_message_parse_type(val));
} else if(!strcmp(key, "direction")) {
owl_message_set_direction(m, owl_message_parse_direction(val));
} else if(!strcmp(key, "isprivate")) {
} else if(!strcmp(key, "private")) {
SV * v = hv_iterval(hash, ent);
if(SvTRUE(v)) {
owl_message_set_isprivate(m);
}
} else if (!strcmp(key, "hostname")) {
owl_message_set_hostname(m, val);
} else if (!strcmp(key, "zwriteline")) {
owl_message_set_zwriteline(m, val);
} else if (!strcmp(key, "time")) {
m->timestr = owl_strdup(val);
struct tm tm;
strptime(val, "%a %b %d %T %Y", &tm);
m->time = mktime(&tm);
} else {
owl_message_set_attribute(m, key, val);
}
Expand Down

0 comments on commit 17eed9c

Please sign in to comment.