diff options
author | marha <marha@users.sourceforge.net> | 2009-07-25 20:12:58 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2009-07-25 20:12:58 +0000 |
commit | 2553bdd7c359cd87525d367761c86932cec5adff (patch) | |
tree | ae71245933c98474a699d3e392de5820879b2018 /xorg-server/hw/xfree86/utils/xorgcfg/xf86config.c | |
parent | e2c51f2ee7b0a3ea1a052fc49324057b4a4bbc78 (diff) | |
parent | 4a3dbb926ae3f5410198d7cc4f4ebe4f62eebf05 (diff) | |
download | vcxsrv-2553bdd7c359cd87525d367761c86932cec5adff.tar.gz vcxsrv-2553bdd7c359cd87525d367761c86932cec5adff.tar.bz2 vcxsrv-2553bdd7c359cd87525d367761c86932cec5adff.zip |
svn merge file:///D:/svnrepos/vcxsrv/branches/released .
Diffstat (limited to 'xorg-server/hw/xfree86/utils/xorgcfg/xf86config.c')
-rw-r--r-- | xorg-server/hw/xfree86/utils/xorgcfg/xf86config.c | 982 |
1 files changed, 0 insertions, 982 deletions
diff --git a/xorg-server/hw/xfree86/utils/xorgcfg/xf86config.c b/xorg-server/hw/xfree86/utils/xorgcfg/xf86config.c deleted file mode 100644 index 2c667dcde..000000000 --- a/xorg-server/hw/xfree86/utils/xorgcfg/xf86config.c +++ /dev/null @@ -1,982 +0,0 @@ -/* - * Copyright (c) 2000 by Conectiva S.A. (http://www.conectiva.com) - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * CONECTIVA LINUX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF - * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Except as contained in this notice, the name of Conectiva Linux shall - * not be used in advertising or otherwise to promote the sale, use or other - * dealings in this Software without prior written authorization from - * Conectiva Linux. - * - * Author: Paulo César Pereira de Andrade <pcpa@conectiva.com.br> - * - */ - -#include "xf86config.h" - -/* - * Implementation - */ -int -xf86removeOption(XF86OptionPtr *options, char *name) -{ - XF86OptionPtr opt = *options, prev = opt; - - while (opt) { - if (strcasecmp(opt->opt_name, name) == 0) { - XtFree(opt->opt_name); - XtFree(opt->opt_val); - XtFree(opt->opt_comment); - if (opt == prev) - *options = (XF86OptionPtr)(opt->list.next); - else - prev->list.next = opt->list.next; - XtFree((XtPointer)opt); - - return (True); - } - - prev = opt; - opt = (XF86OptionPtr)(opt->list.next); - } - - return (False); -} - -int -xf86removeInput(XF86ConfigPtr config, XF86ConfInputPtr input) -{ - XF86ConfInputPtr prev, inp = config->conf_input_lst; - XF86ConfLayoutPtr lay = config->conf_layout_lst; - - /* remove from main structure */ - prev = inp; - while (inp != NULL) { - if (inp == input) { - if (inp == prev) - config->conf_input_lst = (XF86ConfInputPtr)(inp->list.next); - else - prev->list.next = inp->list.next; - break; - } - prev = inp; - inp = (XF86ConfInputPtr)(inp->list.next); - } - - if (inp == NULL) - return (False); - - /* remove references */ - while (lay != NULL) { - xf86removeInputRef(lay, inp); - lay = (XF86ConfLayoutPtr)(lay->list.next); - } - - XtFree(inp->inp_identifier); - XtFree(inp->inp_driver); - XtFree(inp->inp_comment); - xf86optionListFree(inp->inp_option_lst); - XtFree((XtPointer)inp); - - return (True); -} - -int -xf86removeInputRef(XF86ConfLayoutPtr layout, XF86ConfInputPtr input) -{ - XF86ConfInputrefPtr prev, iref = layout->lay_input_lst; - - prev = iref; - while (iref != NULL) { - if (iref->iref_inputdev == input) { - XtFree(iref->iref_inputdev_str); - xf86optionListFree(iref->iref_option_lst); - if (prev == iref) - layout->lay_input_lst = - (XF86ConfInputrefPtr)(iref->list.next); - else - prev->list.next = iref->list.next; - XtFree((XtPointer)iref); - - return (True); - } - prev = iref; - iref = (XF86ConfInputrefPtr)(iref->list.next); - } - - return (False); -} - -int -xf86removeDevice(XF86ConfigPtr config, XF86ConfDevicePtr device) -{ - XF86ConfDevicePtr prev, dev = config->conf_device_lst; - XF86ConfScreenPtr psc, scr = config->conf_screen_lst; - - /* remove from main structure */ - prev = dev; - while (dev != NULL) { - if (dev == device) { - if (dev == prev) - config->conf_device_lst = (XF86ConfDevicePtr)(dev->list.next); - else - prev->list.next = dev->list.next; - break; - } - prev = dev; - dev = (XF86ConfDevicePtr)(dev->list.next); - } - - if (dev == NULL) - return (False); - - /* remove references */ - psc = scr; - while (scr != NULL) { - if (scr->scrn_device == device) { - xf86removeScreen(config, scr); - if (scr == psc) - scr = psc = config->conf_screen_lst; - else - scr = psc; - continue; - } - psc = scr; - scr = (XF86ConfScreenPtr)(scr->list.next); - } - - XtFree(dev->dev_identifier); - XtFree(dev->dev_vendor); - XtFree(dev->dev_board); - XtFree(dev->dev_chipset); - XtFree(dev->dev_busid); - XtFree(dev->dev_card); - XtFree(dev->dev_driver); - XtFree(dev->dev_ramdac); - XtFree(dev->dev_clockchip); - XtFree(dev->dev_comment); - xf86optionListFree(dev->dev_option_lst); - XtFree((XtPointer)dev); - - return (True); -} - -int -xf86removeMonitor(XF86ConfigPtr config, XF86ConfMonitorPtr monitor) -{ - XF86ConfMonitorPtr prev, mon = config->conf_monitor_lst; - XF86ConfScreenPtr psc, scr = config->conf_screen_lst; - - /* remove from main structure */ - prev = mon; - while (mon != NULL) { - if (mon == monitor) { - if (mon == prev) - config->conf_monitor_lst = (XF86ConfMonitorPtr)(mon->list.next); - else - prev->list.next = mon->list.next; - break; - } - prev = mon; - mon = (XF86ConfMonitorPtr)(mon->list.next); - } - - if (mon == NULL) - return (False); - - /* remove references */ - psc = scr; - while (scr != NULL) { - if (scr->scrn_monitor == monitor) { - xf86removeScreen(config, scr); - if (scr == psc) - scr = psc = config->conf_screen_lst; - else - scr = psc; - continue; - } - psc = scr; - scr = (XF86ConfScreenPtr)(scr->list.next); - } - - XtFree(mon->mon_identifier); - XtFree(mon->mon_vendor); - XtFree(mon->mon_modelname); - XtFree(mon->mon_comment); - xf86optionListFree(mon->mon_option_lst); - XtFree((XtPointer)mon); - - return (True); -} - -int -xf86removeScreen(XF86ConfigPtr config, XF86ConfScreenPtr screen) -{ - XF86ConfScreenPtr prev, scrn; - XF86ConfLayoutPtr lay; - - if (config == NULL || screen == NULL) - return (False); - - lay = config->conf_layout_lst; - prev = scrn = config->conf_screen_lst; - - while (scrn != NULL) { - if (scrn == screen) { - if (scrn == prev) - config->conf_screen_lst = (XF86ConfScreenPtr)(scrn->list.next); - else - prev->list.next = scrn->list.next; - break; - } - prev = scrn; - scrn = (XF86ConfScreenPtr)(scrn->list.next); - } - - if (scrn == NULL) - return (False); - - while (lay != NULL) { - XF86ConfAdjacencyPtr pad, ad = NULL, adj = lay->lay_adjacency_lst; - - pad = adj; - while (adj) { - if (adj->adj_screen == screen) - ad = adj; - else { - if (adj->adj_top != NULL && adj->adj_top == screen) { - XtFree(adj->adj_top_str); - adj->adj_top_str = NULL; - adj->adj_top = NULL; - } - else if (adj->adj_bottom != NULL && adj->adj_bottom == screen) { - XtFree(adj->adj_bottom_str); - adj->adj_bottom_str = NULL; - adj->adj_bottom = NULL; - } - else if (adj->adj_left != NULL && adj->adj_left == screen) { - XtFree(adj->adj_left_str); - adj->adj_left_str = NULL; - adj->adj_left = NULL; - } - else if (adj->adj_right != NULL && adj->adj_right == screen) { - XtFree(adj->adj_right_str); - adj->adj_right_str = NULL; - adj->adj_right = NULL; - } - else if (adj->adj_refscreen != NULL && - strcasecmp(scrn->scrn_identifier, - adj->adj_refscreen) == 0) { - XtFree(adj->adj_refscreen); - adj->adj_refscreen = NULL; - adj->adj_where = CONF_ADJ_ABSOLUTE; - adj->adj_x = adj->adj_y = 0; - } - } - if (ad == NULL) - pad = adj; - adj = (XF86ConfAdjacencyPtr)(adj->list.next); - } - - if (ad != NULL) { - if (ad == lay->lay_adjacency_lst) - lay->lay_adjacency_lst = (XF86ConfAdjacencyPtr)(ad->list.next); - else - pad->list.next = (XF86ConfAdjacencyPtr)(ad->list.next); - XtFree(ad->adj_screen_str); - XtFree(ad->adj_top_str); - XtFree(ad->adj_bottom_str); - XtFree(ad->adj_left_str); - XtFree(ad->adj_right_str); - XtFree(ad->adj_refscreen); - XtFree((XtPointer)ad); - } - - lay = (XF86ConfLayoutPtr)(lay->list.next); - } - - xf86freeAdaptorLinkList(screen->scrn_adaptor_lst); - xf86freeDisplayList(screen->scrn_display_lst); - - XtFree(screen->scrn_identifier); - XtFree(screen->scrn_monitor_str); - XtFree(screen->scrn_device_str); - xf86optionListFree(screen->scrn_option_lst); - XtFree((XtPointer)screen); - - return (True); -} - -int -xf86removeAdjacency(XF86ConfLayoutPtr layout, XF86ConfAdjacencyPtr adjacency) -{ - XF86ConfAdjacencyPtr prev, adj = layout->lay_adjacency_lst; - - if (layout == NULL || adjacency == NULL) - return (False); - - prev = adj; - while (adj != NULL) { - if (adj == adjacency) - break; - prev = adj; - adj = (XF86ConfAdjacencyPtr)(adj->list.next); - } - if (adj == NULL) - return (False); - - XtFree(adj->adj_screen_str); - XtFree(adj->adj_top_str); - XtFree(adj->adj_bottom_str); - XtFree(adj->adj_left_str); - XtFree(adj->adj_right_str); - XtFree(adj->adj_refscreen); - if (prev == adj) - layout->lay_adjacency_lst = (XF86ConfAdjacencyPtr)(adj->list.next); - else - prev->list.next = adj->list.next; - XtFree((XtPointer)adj); - - return (True); -} - -int -xf86removeInactive(XF86ConfLayoutPtr layout, XF86ConfInactivePtr inactive) -{ - XF86ConfInactivePtr prev, inac = layout->lay_inactive_lst; - - if (layout == NULL || inactive == NULL) - return (False); - - prev = inac; - while (inac != NULL) { - if (inac == inactive) - break; - prev = inac; - inac = (XF86ConfInactivePtr)(inac->list.next); - } - if (inac == NULL) - return (False); - - XtFree(inac->inactive_device_str); - if (prev == inac) - layout->lay_inactive_lst = (XF86ConfInactivePtr)(inac->list.next); - else - prev->list.next = inac->list.next; - XtFree((XtPointer)inac); - - return (True); -} - -int -xf86removeLayout(XF86ConfigPtr config, XF86ConfLayoutPtr layout) -{ - XF86ConfLayoutPtr prev, lay = config->conf_layout_lst; - XF86ConfAdjacencyPtr adj, nadj; - XF86ConfInactivePtr inac, ninac; - XF86ConfInputrefPtr iref, niref; - - if (config == NULL || layout == NULL) - return (False); - - prev = lay; - while (lay != NULL) { - if (lay == layout) - break; - prev = lay; - lay = (XF86ConfLayoutPtr)(lay->list.next); - } - - if (lay == NULL) - return (False); - - adj = lay->lay_adjacency_lst; - while (adj != NULL) { - nadj = (XF86ConfAdjacencyPtr)(adj->list.next); - xf86removeAdjacency(lay, adj); - adj = nadj; - } - - inac = lay->lay_inactive_lst; - while (inac != NULL) { - ninac = (XF86ConfInactivePtr)(inac->list.next); - xf86removeInactive(lay, inac); - inac = ninac; - } - - iref = lay->lay_input_lst; - while (iref != NULL) { - niref = (XF86ConfInputrefPtr)(iref->list.next); - xf86removeInputRef(lay, iref->iref_inputdev); - iref = niref; - } - - xf86optionListFree(lay->lay_option_lst); - - if (prev == lay) - config->conf_layout_lst = (XF86ConfLayoutPtr)(lay->list.next); - else - prev->list.next = lay->list.next; - XtFree(lay->lay_identifier); - XtFree((XtPointer)lay); - - return (True); -} - -int -xf86removeModule(XF86ConfigPtr config, XF86LoadPtr load) -{ - XF86LoadPtr prev, mod; - - if (config == NULL || config->conf_modules == NULL || - config->conf_modules->mod_load_lst == NULL) - return (False); - - for (mod = prev = config->conf_modules->mod_load_lst; - mod != NULL; prev = mod, mod = (XF86LoadPtr)(mod->list.next)) - if (load == mod) { - if (mod == prev) - config->conf_modules->mod_load_lst = - (XF86LoadPtr)(mod->list.next); - else - prev->list.next = mod->list.next; - XtFree(mod->load_name); - xf86optionListFree(mod->load_opt); - - return (True); - } - - return (False); -} - -int -xf86removeModes(XF86ConfigPtr config, XF86ConfModesPtr modes) -{ - XF86ConfModesPtr mod; - XF86ConfModeLinePtr ml, next; - XF86ConfMonitorPtr mon; - - if (config == NULL || modes == NULL) - return (False); - - /* check if modes is in config */ - if ((mod = config->conf_modes_lst) == modes) - config->conf_modes_lst = (XF86ConfModesPtr)(mod->list.next); - else - for (; mod != NULL; mod = (XF86ConfModesPtr)(mod->list.next)) - if ((XF86ConfModesPtr)(mod->list.next) == modes) { - mod->list.next = modes->list.next; - break; - } - - if (mod == NULL) - return (False); - - /* remove references in monitor sections */ - mon = config->conf_monitor_lst; - while (mon) { - XF86ConfModesLinkPtr m, p; - - m = p = mon->mon_modes_sect_lst; - while (m) { - if (m->ml_modes == modes) { - XtFree(m->ml_modes_str); - if (m == mon->mon_modes_sect_lst) - p = mon->mon_modes_sect_lst = - (XF86ConfModesLinkPtr)(m->list.next); - else { - p->list.next = m->list.next; - p = p->list.next; - } - XtFree((XtPointer)m); - m = p; - continue; - } - p = m; - m = (XF86ConfModesLinkPtr)(m->list.next); - } - mon = (XF86ConfMonitorPtr)(mon->list.next); - } - - /* free modelines */ - ml = modes->mon_modeline_lst; - while (ml) { - next = (XF86ConfModeLinePtr)(ml->list.next); - XtFree(ml->ml_identifier); - XtFree((XtPointer)ml); - ml = next; - } - - /* free mode */ - XtFree(modes->modes_identifier); - XtFree((XtPointer)modes); - - return (True); -} - -int -xf86removeModesModeLine(XF86ConfModesPtr modes, XF86ConfModeLinePtr modeline) -{ - XF86ConfModeLinePtr ml, prev; - - if (modes == NULL || modeline == NULL || modes->mon_modeline_lst == NULL) - return (False); - - for (ml = prev = modes->mon_modeline_lst; ml; - prev = ml, ml = (XF86ConfModeLinePtr)(ml->list.next)) - if (ml == modeline) { - if (prev == ml) - modes->mon_modeline_lst = (XF86ConfModeLinePtr)(ml->list.next); - else - prev->list.next = ml->list.next; - XtFree(modeline->ml_identifier); - XtFree((XtPointer)modeline); - return (True); - } - - return (False); -} - -int -xf86removeMonitorModeLine(XF86ConfMonitorPtr monitor, XF86ConfModeLinePtr modeline) -{ - XF86ConfModeLinePtr ml, prev; - - if (monitor == NULL || modeline == NULL || monitor->mon_modeline_lst == NULL) - return (False); - - for (ml = prev = monitor->mon_modeline_lst; ml; - prev = ml, ml = (XF86ConfModeLinePtr)(ml->list.next)) - if (ml == modeline) { - if (prev == ml) - monitor->mon_modeline_lst = (XF86ConfModeLinePtr)(ml->list.next); - else - prev->list.next = ml->list.next; - XtFree(modeline->ml_identifier); - XtFree((XtPointer)modeline); - return (True); - } - - return (False); -} - -int -xf86removeMonitorModesLink(XF86ConfMonitorPtr monitor, XF86ConfModesLinkPtr link) -{ - XF86ConfModesLinkPtr lnk, prev; - - if (monitor == NULL || link == NULL || monitor->mon_modes_sect_lst == NULL) - return (False); - - for (lnk = prev = monitor->mon_modes_sect_lst; lnk != NULL; - prev = lnk, lnk = (XF86ConfModesLinkPtr)(lnk->list.next)) - if (lnk == link) { - if (prev == lnk) - monitor->mon_modes_sect_lst = (XF86ConfModesLinkPtr)(lnk->list.next); - else - prev->list.next = lnk->list.next; - XtFree(link->ml_modes_str); - XtFree((XtPointer)link); - - return (True); - } - - return (False); -} - -int -xf86removeScreenAdaptorLink(XF86ConfScreenPtr scrn, XF86ConfAdaptorLinkPtr link) -{ - XF86ConfAdaptorLinkPtr lnk, prev; - - if (scrn == NULL || link == NULL || scrn->scrn_adaptor_lst == NULL) - return (False); - - for (lnk = prev = scrn->scrn_adaptor_lst; lnk != NULL; - prev = lnk, lnk = (XF86ConfAdaptorLinkPtr)(lnk->list.next)) - if (lnk == link) { - if (prev == lnk) - scrn->scrn_adaptor_lst = - (XF86ConfAdaptorLinkPtr)(lnk->list.next); - else - prev->list.next = lnk->list.next; - XtFree(link->al_adaptor_str); - XtFree((XtPointer)link); - - return (True); - } - - return (False); -} - -int -xf86removeScreenDisplay(XF86ConfScreenPtr scrn, XF86ConfDisplayPtr display) -{ - XF86ConfDisplayPtr dsp, prev; - - if (scrn == NULL || display == NULL || scrn->scrn_display_lst == NULL) - return (False); - - for (dsp = prev = scrn->scrn_display_lst; dsp != NULL; - prev = dsp, dsp = (XF86ConfDisplayPtr)(dsp->list.next)) - if (dsp == display) { - if (prev == dsp) - scrn->scrn_display_lst = - (XF86ConfDisplayPtr)(dsp->list.next); - else - prev->list.next = dsp->list.next; - xf86optionListFree(display->disp_option_lst); - XtFree((XtPointer)display->disp_visual); - xf86freeModeList(display->disp_mode_lst); - XtFree((XtPointer)display); - - return (True); - } - - return (False); -} - -int -xf86removeVideoAdaptor(XF86ConfigPtr config, XF86ConfVideoAdaptorPtr video) -{ - XF86ConfVideoAdaptorPtr vid; - XF86ConfScreenPtr scrn; - XF86ConfVideoPortPtr vp, next; - - if (config == NULL || video == NULL) - return (False); - - /* check if video is in config and update videoadaptor list */ - if ((vid = config->conf_videoadaptor_lst) == video) - config->conf_videoadaptor_lst = (XF86ConfVideoAdaptorPtr)(vid->list.next); - else - for (; vid != NULL; vid = (XF86ConfVideoAdaptorPtr)(vid->list.next)) - if ((XF86ConfVideoAdaptorPtr)(vid->list.next) == video) { - vid->list.next = video->list.next; - break; - } - - if (vid == NULL) - return (False); - - /* remove references in screen sections */ - scrn = config->conf_screen_lst; - while (scrn) { - XF86ConfAdaptorLinkPtr v, p; - - v = p = scrn->scrn_adaptor_lst; - while (v) { - if (v->al_adaptor == video) { - XtFree(v->al_adaptor_str); - if (v == scrn->scrn_adaptor_lst) - p = scrn->scrn_adaptor_lst = - (XF86ConfAdaptorLinkPtr)(v->list.next); - else { - p->list.next = v->list.next; - p = p->list.next; - } - XtFree((XtPointer)v); - v = p; - continue; - } - p = v; - v = (XF86ConfAdaptorLinkPtr)(v->list.next); - } - scrn = (XF86ConfScreenPtr)(scrn->list.next); - } - - /* free videoports */ - vp = video->va_port_lst; - while (vp) { - next = (XF86ConfVideoPortPtr)(vp->list.next); - XtFree(vp->vp_identifier); - xf86optionListFree(vp->vp_option_lst); - XtFree((XtPointer)vp); - vp = next; - } - - /* free videoadaptor */ - XtFree(video->va_identifier); - XtFree(video->va_vendor); - XtFree(video->va_board); - XtFree(video->va_busid); - XtFree(video->va_driver); - XtFree(video->va_fwdref); - xf86optionListFree(video->va_option_lst); - XtFree((XtPointer)video); - - return (True); -} - -int -xf86removeVideoPort(XF86ConfVideoAdaptorPtr va, XF86ConfVideoPortPtr vp) -{ - XF86ConfVideoPortPtr prev; - - if (va == NULL || vp == NULL) - return (False); - - if ((prev = va->va_port_lst) == vp) - va->va_port_lst = (XF86ConfVideoPortPtr)(va->va_port_lst->list.next); - else { - while (prev && (XF86ConfVideoPortPtr)(prev->list.next) != vp) - prev = (XF86ConfVideoPortPtr)(prev->list.next); - if (prev == NULL) - return (False); - prev->list.next = vp->list.next; - } - - xf86optionListFree(vp->vp_option_lst); - XtFree((XtPointer)vp); - - return (True); -} - -int -xf86removeDisplayMode(XF86ConfDisplayPtr display, XF86ModePtr mode) -{ - XF86ModePtr prev; - - if (display == NULL || mode == NULL) - return (False); - - if ((prev = display->disp_mode_lst) == mode) - display->disp_mode_lst = (XF86ModePtr)(display->disp_mode_lst->list.next); - else { - while (prev && (XF86ModePtr)(prev->list.next) != mode) - prev = (XF86ModePtr)(prev->list.next); - if (prev == NULL) - return (False); - prev->list.next = mode->list.next; - } - - XtFree((XtPointer)mode); - - return (True); -} - -int -xf86removeVendor(XF86ConfigPtr config, XF86ConfVendorPtr vendor) -{ - XF86ConfVendorPtr prev; - - if (config == NULL || vendor == NULL) - return (False); - - if ((prev = config->conf_vendor_lst) == vendor) - config->conf_vendor_lst = (XF86ConfVendorPtr)(config->conf_vendor_lst->list.next); - else { - while (prev && (XF86ConfVendorPtr)(prev->list.next) != vendor) - prev = (XF86ConfVendorPtr)(prev->list.next); - if (prev == NULL) - return (False); - prev->list.next = vendor->list.next; - } - - xf86optionListFree(vendor->vnd_option_lst); - xf86freeVendorSubList(vendor->vnd_sub_lst); - XtFree(vendor->vnd_identifier); - XtFree((XtPointer)vendor); - - return (True); -} - -int -xf86removeVendorSub(XF86ConfVendorPtr vendor, XF86ConfVendSubPtr sub) -{ - XF86ConfVendSubPtr prev; - - if (vendor == NULL || sub == NULL) - return (False); - - if ((prev = vendor->vnd_sub_lst) == sub) - vendor->vnd_sub_lst = (XF86ConfVendSubPtr)(vendor->vnd_sub_lst->list.next); - else { - while (prev && (XF86ConfVendSubPtr)(prev->list.next) != sub) - prev = (XF86ConfVendSubPtr)(prev->list.next); - if (prev == NULL) - return (False); - prev->list.next = sub->list.next; - } - - xf86optionListFree(sub->vs_option_lst); - XtFree(sub->vs_name); - XtFree(sub->vs_identifier); - XtFree((XtPointer)sub); - - return (True); -} - -int -xf86removeBuffers(XF86ConfDRIPtr dri, XF86ConfBuffersPtr buf) -{ - XF86ConfBuffersPtr prev; - - if (dri == NULL || buf == NULL) - return (False); - - if ((prev = dri->dri_buffers_lst) == buf) - dri->dri_buffers_lst = (XF86ConfBuffersPtr)(dri->dri_buffers_lst->list.next); - else { - while (prev && (XF86ConfBuffersPtr)(prev->list.next) != buf) - prev = (XF86ConfBuffersPtr)(prev->list.next); - if (prev == NULL) - return (False); - prev->list.next = buf->list.next; - } - - XtFree(buf->buf_flags); - XtFree((XtPointer)buf); - - return (True); -} - -int -xf86renameInput(XF86ConfigPtr config, XF86ConfInputPtr input, char *name) -{ - XF86ConfLayoutPtr lay = config->conf_layout_lst; - - if (config == NULL || input == NULL || name == NULL || *name == '\0') - return (False); - - while (lay != NULL) { - XF86ConfInputrefPtr iref = lay->lay_input_lst; - - while (iref != NULL) { - if (strcasecmp(input->inp_identifier, iref->iref_inputdev_str) == 0) { - XtFree(iref->iref_inputdev_str); - iref->iref_inputdev_str = XtNewString(name); - } - iref = (XF86ConfInputrefPtr)(iref->list.next); - } - lay = (XF86ConfLayoutPtr)(lay->list.next); - } - - XtFree(input->inp_identifier); - input->inp_identifier = XtNewString(name); - - return (True); -} - -int -xf86renameDevice(XF86ConfigPtr config, XF86ConfDevicePtr dev, char *name) -{ - XF86ConfScreenPtr scr = config->conf_screen_lst; - - if (config == NULL || dev == NULL || name == NULL || *name == '\0') - return (False); - - while (scr != NULL) { - if (scr->scrn_device == dev) { - XtFree(scr->scrn_device_str); - scr->scrn_device_str = XtNewString(name); - } - - scr = (XF86ConfScreenPtr)(scr->list.next); - } - - XtFree(dev->dev_identifier); - dev->dev_identifier = XtNewString(name); - - return (True); -} - -int -xf86renameMonitor(XF86ConfigPtr config, XF86ConfMonitorPtr mon, char *name) -{ - XF86ConfScreenPtr scr = config->conf_screen_lst; - - if (config == NULL || mon == NULL || name == NULL || *name == '\0') - return (False); - - while (scr != NULL) { - if (scr->scrn_monitor == mon) { - XtFree(scr->scrn_monitor_str); - scr->scrn_monitor_str = XtNewString(name); - } - - scr = (XF86ConfScreenPtr)(scr->list.next); - } - - XtFree(mon->mon_identifier); - mon->mon_identifier = XtNewString(name); - - return (True); -} - -int -xf86renameLayout(XF86ConfigPtr config, XF86ConfLayoutPtr layout, char *name) -{ - if (config == NULL || layout == NULL || name == NULL || *name == '\0') - return (False); - - XtFree(layout->lay_identifier); - layout->lay_identifier = XtNewString(name); - - return (True); -} - -int -xf86renameScreen(XF86ConfigPtr config, XF86ConfScreenPtr scrn, char *name) -{ - XF86ConfLayoutPtr lay = config->conf_layout_lst; - - if (config == NULL || scrn == NULL || name == NULL || *name == '\0') - return (False); - - while (lay != NULL) { - XF86ConfAdjacencyPtr adj = lay->lay_adjacency_lst; - - while (adj != NULL) { - if (adj->adj_screen == scrn) { - XtFree(adj->adj_screen_str); - adj->adj_screen_str = XtNewString(name); - } - else if (adj->adj_top == scrn) { - XtFree(adj->adj_top_str); - adj->adj_top_str = XtNewString(name); - } - else if (adj->adj_bottom == scrn) { - XtFree(adj->adj_bottom_str); - adj->adj_bottom_str = XtNewString(name); - } - else if (adj->adj_left == scrn) { - XtFree(adj->adj_left_str); - adj->adj_left_str = XtNewString(name); - } - else if (adj->adj_right == scrn) { - XtFree(adj->adj_right_str); - adj->adj_right_str = XtNewString(name); - } - else if (adj->adj_refscreen != NULL && - strcasecmp(adj->adj_refscreen, name) == 0) { - XtFree(adj->adj_refscreen); - adj->adj_refscreen = XtNewString(name); - } - - adj = (XF86ConfAdjacencyPtr)(adj->list.next); - } - lay = (XF86ConfLayoutPtr)(lay->list.next); - } - - XtFree(scrn->scrn_identifier); - scrn->scrn_identifier = XtNewString(name); - - return (True); -} |