Changeset 30678ae for perlglue.xs
- Timestamp:
- Jan 29, 2007, 9:54:41 PM (17 years ago)
- Branches:
- master, barnowl_perlaim, debian, release-1.10, release-1.4, release-1.5, release-1.6, release-1.7, release-1.8, release-1.9
- Children:
- 29ebcea
- Parents:
- a8a3433
- git-author:
- Nelson Elhage <nelhage@mit.edu> (01/29/07 21:54:30)
- git-committer:
- Nelson Elhage <nelhage@mit.edu> (01/29/07 21:54:41)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
perlglue.xs
r7f792c1 r30678ae 117 117 SV *msg 118 118 PREINIT: 119 char * key;120 char * val;121 119 owl_message *m; 122 HV * hash;123 HE * ent;124 I32 count;125 I32 len;126 120 CODE: 127 121 { … … 130 124 } 131 125 132 hash = (HV*)SvRV(msg); 133 m = owl_malloc(sizeof(owl_message)); 134 owl_message_init(m); 135 136 count = hv_iterinit(hash); 137 while((ent = hv_iternext(hash))) { 138 key = hv_iterkey(ent, &len); 139 val = SvPV_nolen(hv_iterval(hash, ent)); 140 if(!strcmp(key, "type")) { 141 owl_message_set_type(m, owl_message_parse_type(val)); 142 } else if(!strcmp(key, "direction")) { 143 owl_message_set_direction(m, owl_message_parse_direction(val)); 144 } else if(!strcmp(key, "private")) { 145 SV * v = hv_iterval(hash, ent); 146 if(SvTRUE(v)) { 147 owl_message_set_isprivate(m); 148 } 149 } else if (!strcmp(key, "hostname")) { 150 owl_message_set_hostname(m, val); 151 } else if (!strcmp(key, "zwriteline")) { 152 owl_message_set_zwriteline(m, val); 153 } else if (!strcmp(key, "time")) { 154 m->timestr = owl_strdup(val); 155 struct tm tm; 156 strptime(val, "%a %b %d %T %Y", &tm); 157 m->time = mktime(&tm); 158 } else { 159 owl_message_set_attribute(m, key, val); 160 } 161 } 162 if(owl_message_is_type_admin(m)) { 163 if(!owl_message_get_attribute_value(m, "adminheader")) 164 owl_message_set_attribute(m, "adminheader", ""); 165 } 126 m = owl_perlconfig_hashref2message(msg); 166 127 167 128 owl_global_messagequeue_addmsg(&g, m);
Note: See TracChangeset
for help on using the changeset viewer.