diff --git a/lib/modules/Protocols.pmod/X.pmod/Xlib.pmod b/lib/modules/Protocols.pmod/X.pmod/Xlib.pmod index c9421ec8d9100be2e107087c62274cfa4592c5ca..5bd5ee22fdb1d0b45f42222842c8139ccb3fd744 100644 --- a/lib/modules/Protocols.pmod/X.pmod/Xlib.pmod +++ b/lib/modules/Protocols.pmod/X.pmod/Xlib.pmod @@ -749,8 +749,11 @@ class Display set_buffer( 65536 ); - screen_number = (int) fields[2]; - + if(sizeof(fields[2])) + screen_number = (int) fields[2][1..]; + else + screen_number = 0; + buffer = ""; received = rec_buffer(); pending_requests = ([]); @@ -883,4 +886,19 @@ class Display { return roots[screen_number]; } + + object OpenFont_req(string name) + { + object req = Requests.OpenFont(); + req->fid = alloc_id(); + req->name = name; + return req; + } + + object OpenFont(string name) + { + object req = OpenFont_req(name); + send_request(req); + return Types.Font(this_object(), req->fid); + } } diff --git a/lib/modules/Protocols.pmod/X.pmod/_Xlib.pmod b/lib/modules/Protocols.pmod/X.pmod/_Xlib.pmod index c3ecf665f51640f50bbaa8cbc8f2ea4c5307b16b..5cfbdc31bc4ea8c3c6b546e203a937952f1e194e 100644 --- a/lib/modules/Protocols.pmod/X.pmod/_Xlib.pmod +++ b/lib/modules/Protocols.pmod/X.pmod/_Xlib.pmod @@ -3,7 +3,7 @@ * kluge */ -object display_re = Regexp("([^:]*):([0-9]+).([0-9]+)"); +object display_re = Regexp("^([^:]*):([0-9]+)(.[0-9]+|)$"); string pad(string s) {