View | Details | Raw Unified | Return to bug 104069
Collapse All | Expand All

(-)programs/Xserver/hw/xfree86/drivers/mga/mga_merge.c (-5 / +7 lines)
Lines 151-156 GenerateModeList(ScrnInfoPtr pScrn, char Link Here
151
            case 0:
151
            case 0:
152
            case '-':
152
            case '-':
153
            case ' ':
153
            case ' ':
154
	    case ',':
155
	    case ';':
154
                if((strmode != str)) {/*we got a mode */
156
                if((strmode != str)) {/*we got a mode */
155
                    /* read new entry */
157
                    /* read new entry */
156
                    strncpy(modename,strmode,str - strmode);
158
                    strncpy(modename,strmode,str - strmode);
Lines 174-184 GenerateModeList(ScrnInfoPtr pScrn, char Link Here
174
                                "Mode: \"%s\" is not a supported mode for monitor 1\n",modename);
176
                                "Mode: \"%s\" is not a supported mode for monitor 1\n",modename);
175
                            /* find if a monitor2 mode follows */
177
                            /* find if a monitor2 mode follows */
176
                            gotdash = FALSE;
178
                            gotdash = FALSE;
177
                            while(*tmps == ' ') tmps++;
179
                            while(*tmps == ' ' || *tmps == ';') tmps++;
178
                            if(*tmps == '-') { /* skip the next mode */
180
                            if(*tmps == '-' || *tmps == ',') { /* skip the next mode */
179
                                tmps++;
181
                                tmps++;
180
                                while((*tmps == ' ') && (*tmps != 0)) tmps++; /*skip spaces */
182
                                while(*tmps == ' ' || *tmps == ';') tmps++; /*skip spaces */
181
                                while((*tmps != ' ') && (*tmps != '-') && (*tmps != 0)) tmps++; /*skip modename */
183
                                while(*tmps && *tmps != ' ' && *tmps != ';' && *tmps != '-' && *tmps != ',') tmps++; /*skip modename */
182
                                /* for error message */
184
                                /* for error message */
183
                                strncpy(modename,strmode,tmps - strmode);
185
                                strncpy(modename,strmode,tmps - strmode);
184
                                modename[tmps - strmode] = 0;
186
                                modename[tmps - strmode] = 0;
Lines 192-198 GenerateModeList(ScrnInfoPtr pScrn, char Link Here
192
                    gotdash = FALSE;
194
                    gotdash = FALSE;
193
                }
195
                }
194
                strmode = str+1; /* number starts on next char */
196
                strmode = str+1; /* number starts on next char */
195
                gotdash |= (*str == '-');
197
                gotdash |= (*str == '-' || *str == ',');
196
                
198
                
197
                if(*str != 0) break; /* if end of string, we wont get a chance to catch a char and run the
199
                if(*str != 0) break; /* if end of string, we wont get a chance to catch a char and run the
198
                                        default case. do it now */
200
                                        default case. do it now */
(-)programs/Xserver/hw/xfree86/drivers/ati/radeon_mergedfb.c (-12 / +16 lines)
Lines 413-419 RADEONGenerateModeListFromMetaModes(Scrn Link Here
413
{
413
{
414
    char* strmode = str;
414
    char* strmode = str;
415
    char modename[256];
415
    char modename[256];
416
    Bool gotdash = FALSE, gotplus = FALSE;
416
    Bool gotdash = FALSE;
417
    char gotsep = 0;
417
    RADEONScrn2Rel sr;
418
    RADEONScrn2Rel sr;
418
    DisplayModePtr mode1 = NULL;
419
    DisplayModePtr mode1 = NULL;
419
    DisplayModePtr mode2 = NULL;
420
    DisplayModePtr mode2 = NULL;
Lines 429-434 RADEONGenerateModeListFromMetaModes(Scrn Link Here
429
        case '-':
430
        case '-':
430
	case '+':
431
	case '+':
431
        case ' ':
432
        case ' ':
433
	case ',':
434
	case ';':
432
           if(strmode != str) {
435
           if(strmode != str) {
433
436
434
              myslen = str - strmode;
437
              myslen = str - strmode;
Lines 447-455 RADEONGenerateModeListFromMetaModes(Scrn Link Here
447
                    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
450
                    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
448
                        "Mode \"%s\" is not a supported mode for CRT2\n", modename);
451
                        "Mode \"%s\" is not a supported mode for CRT2\n", modename);
449
                    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
452
                    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
450
                        "\t(Skipping metamode \"%s%s%s\")\n", mode1->name, gotplus ? "+" : "-", modename);
453
                        "\t(Skipping metamode \"%s%c%s\")\n", mode1->name, gotsep, modename);
451
                    mode1 = NULL;
454
                    mode1 = NULL;
452
		    gotplus = FALSE;
455
		    gotsep = 0;
453
                 }
456
                 }
454
              } else {
457
              } else {
455
                 mode1 = RADEONGetModeFromName(modename, i);
458
                 mode1 = RADEONGetModeFromName(modename, i);
Lines 457-470 RADEONGenerateModeListFromMetaModes(Scrn Link Here
457
                    char* tmps = str;
460
                    char* tmps = str;
458
                    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
461
                    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
459
                        "Mode \"%s\" is not a supported mode for CRT1\n", modename);
462
                        "Mode \"%s\" is not a supported mode for CRT1\n", modename);
460
                    while(*tmps == ' ') tmps++;
463
                    while(*tmps == ' ' || *tmps == ';') tmps++;
461
                    /* skip the next mode */
464
                    /* skip the next mode */
462
  	            if((*tmps == '-') || (*tmps == '+')) {
465
  	            if(*tmps == '-' || *tmps == '+' || *tmps == ',') {
463
                       tmps++;
466
                       tmps++;
464
		       /* skip spaces */
467
		       /* skip spaces */
465
		       while(*tmps == ' ') tmps++;
468
		       while(*tmps == ' ' || *tmps == ';') tmps++;
466
		       /* skip modename */
469
		       /* skip modename */
467
		       while((*tmps != ' ') && (*tmps != '-') && (*tmps != '+') && (*tmps != 0)) tmps++;
470
		       while(*tmps && *tmps != ' ' && *tmps != ';' && *tmps != '-' && *tmps != '+' && *tmps != ',') tmps++;
468
  	               myslen = tmps - strmode;
471
  	               myslen = tmps - strmode;
469
  	               if(myslen > 255) myslen = 255;
472
  	               if(myslen > 255) myslen = 255;
470
  	               strncpy(modename,strmode,myslen);
473
  	               strncpy(modename,strmode,myslen);
Lines 474-487 RADEONGenerateModeListFromMetaModes(Scrn Link Here
474
                    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
477
                    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
475
                        "\t(Skipping metamode \"%s\")\n", modename);
478
                        "\t(Skipping metamode \"%s\")\n", modename);
476
                    mode1 = NULL;
479
                    mode1 = NULL;
477
		    gotplus = FALSE;
480
		    gotsep = 0;
478
                 }
481
                 }
479
              }
482
              }
480
              gotdash = FALSE;
483
              gotdash = FALSE;
481
           }
484
           }
482
           strmode = str + 1;
485
           strmode = str + 1;
483
           gotdash |= ((*str == '-') || (*str == '+'));
486
           gotdash |= (*str == '-' || *str == '+' || *str == ',');
484
  	   gotplus |= (*str == '+');
487
	   if (*str == '-' || *str == '+' || *str == ',')
488
  	      gotsep = *str;
485
489
486
           if(*str != 0) break;
490
           if(*str != 0) break;
487
	   /* Fall through otherwise */
491
	   /* Fall through otherwise */
Lines 489-495 RADEONGenerateModeListFromMetaModes(Scrn Link Here
489
        default:
493
        default:
490
           if(!gotdash && mode1) {
494
           if(!gotdash && mode1) {
491
              sr = srel;
495
              sr = srel;
492
	      if(gotplus) sr = radeonClone;
496
	      if(gotsep == '+') sr = radeonClone;
493
              if(!mode2) {
497
              if(!mode2) {
494
                 mode2 = RADEONGetModeFromName(mode1->name, j);
498
                 mode2 = RADEONGetModeFromName(mode1->name, j);
495
                 sr = radeonClone;
499
                 sr = radeonClone;
Lines 505-511 RADEONGenerateModeListFromMetaModes(Scrn Link Here
505
                 mode1 = NULL;
509
                 mode1 = NULL;
506
                 mode2 = NULL;
510
                 mode2 = NULL;
507
              }
511
              }
508
	      gotplus = FALSE;
512
	      gotsep = 0;
509
           }
513
           }
510
           break;
514
           break;
511
515
(-)programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c (-14 / +22 lines)
Lines 1483-1490 SiSGenerateModeListFromLargestModes(Scrn Link Here
1483
    return result;
1483
    return result;
1484
}
1484
}
1485
1485
1486
/* Generate the merged-fb mode modelist from metamodes
1486
/* Generate the merged-fb mode modelist
1487
 * (Code base taken from mga driver)
1487
 * (Taken from mga driver)
1488
 */
1488
 */
1489
static DisplayModePtr
1489
static DisplayModePtr
1490
SiSGenerateModeListFromMetaModes(ScrnInfoPtr pScrn, char* str,
1490
SiSGenerateModeListFromMetaModes(ScrnInfoPtr pScrn, char* str,
Lines 1496-1502 SiSGenerateModeListFromMetaModes(ScrnInf Link Here
1496
#endif
1496
#endif
1497
    char* strmode = str;
1497
    char* strmode = str;
1498
    char modename[256];
1498
    char modename[256];
1499
    Bool gotdash = FALSE, gotplus = FALSE;
1499
    Bool gotdash = FALSE;
1500
    char gotsep = 0;
1500
    SiSScrn2Rel sr;
1501
    SiSScrn2Rel sr;
1501
    DisplayModePtr mode1 = NULL;
1502
    DisplayModePtr mode1 = NULL;
1502
    DisplayModePtr mode2 = NULL;
1503
    DisplayModePtr mode2 = NULL;
Lines 1513-1518 SiSGenerateModeListFromMetaModes(ScrnInf Link Here
1513
	case '-':
1514
	case '-':
1514
	case '+':
1515
	case '+':
1515
	case ' ':
1516
	case ' ':
1517
	case ',':
1518
	case ';':
1516
	   if(strmode != str) {
1519
	   if(strmode != str) {
1517
1520
1518
	      myslen = str - strmode;
1521
	      myslen = str - strmode;
Lines 1531-1539 SiSGenerateModeListFromMetaModes(ScrnInf Link Here
1531
		    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
1534
		    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
1532
			"Mode \"%s\" is not a supported mode for CRT2\n", modename);
1535
			"Mode \"%s\" is not a supported mode for CRT2\n", modename);
1533
		    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
1536
		    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
1534
			"\t(Skipping metamode \"%s%s%s\")\n", mode1->name, gotplus ? "+" : "-", modename);
1537
                        "\t(Skipping metamode \"%s%c%s\")\n", mode1->name, gotsep, modename);
1535
		    mode1 = NULL;
1538
		    mode1 = NULL;
1536
		    gotplus = FALSE;
1539
		    gotsep = 0;
1537
		 }
1540
		 }
1538
	      } else {
1541
	      } else {
1539
		 mode1 = SiSGetModeFromName(modename, i);
1542
		 mode1 = SiSGetModeFromName(modename, i);
Lines 1541-1569 SiSGenerateModeListFromMetaModes(ScrnInf Link Here
1541
		    char* tmps = str;
1544
		    char* tmps = str;
1542
		    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
1545
		    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
1543
			"Mode \"%s\" is not a supported mode for CRT1\n", modename);
1546
			"Mode \"%s\" is not a supported mode for CRT1\n", modename);
1544
		    while(*tmps == ' ') tmps++;
1547
                    while(*tmps == ' ' || *tmps == ';') tmps++;
1545
		    /* skip the next mode */
1548
		    /* skip the next mode */
1546
		    if((*tmps == '-') || (*tmps == '+')) {
1549
  	            if(*tmps == '-' || *tmps == '+' || *tmps == ',') {
1547
		       tmps++;
1550
		       tmps++;
1548
		       /* skip spaces */
1551
		       /* skip spaces */
1549
		       while(*tmps == ' ') tmps++;
1552
		       while(*tmps == ' ' || *tmps == ';') tmps++;
1550
		       /* skip modename */
1553
		       /* skip modename */
1551
		       while((*tmps != ' ') && (*tmps != '-') && (*tmps != '+') && (*tmps != 0)) tmps++;
1554
		       while(*tmps && *tmps != ' ' && *tmps != ';' && *tmps != '-' && *tmps != '+' && *tmps != ',') tmps++;
1552
		       myslen = tmps - strmode;
1555
		       myslen = tmps - strmode;
1553
		       if(myslen > 255) myslen = 255;
1556
		       if(myslen > 255) myslen = 255;
1554
		       strncpy(modename,strmode,myslen);
1557
		       strncpy(modename,strmode,myslen);
1555
		       modename[myslen] = 0;
1558
		       modename[myslen] = 0;
1556
		       str = tmps - 1;
1559
		       str = tmps - 1;
1557
		    }
1560
		    }
1561
                    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
1562
                        "\t(Skipping metamode \"%s\")\n", modename);
1558
		    mode1 = NULL;
1563
		    mode1 = NULL;
1559
		    gotplus = FALSE;
1564
		    gotsep = 0;
1560
		 }
1565
		 }
1561
	      }
1566
	      }
1562
	      gotdash = FALSE;
1567
	      gotdash = FALSE;
1563
	   }
1568
	   }
1564
	   strmode = str + 1;
1569
	   strmode = str + 1;
1565
	   gotdash |= ((*str == '-') || (*str == '+'));
1570
           gotdash |= (*str == '-' || *str == '+' || *str == ',');
1566
	   gotplus |= (*str == '+');
1571
	   if (*str == '-' || *str == '+' || *str == ',')
1572
  	      gotsep = *str;
1567
1573
1568
	   if(*str != 0) break;
1574
	   if(*str != 0) break;
1569
	   /* Fall through otherwise */
1575
	   /* Fall through otherwise */
Lines 1571-1577 SiSGenerateModeListFromMetaModes(ScrnInf Link Here
1571
        default:
1577
        default:
1572
	   if(!gotdash && mode1) {
1578
	   if(!gotdash && mode1) {
1573
	      sr = srel;
1579
	      sr = srel;
1574
	      if(gotplus) sr = sisClone;
1580
	      if(gotsep == '+') sr = sisClone;
1575
	      if(!mode2) {
1581
	      if(!mode2) {
1576
	         mode2 = SiSGetModeFromName(mode1->name, j);
1582
	         mode2 = SiSGetModeFromName(mode1->name, j);
1577
	         sr = sisClone;
1583
	         sr = sisClone;
Lines 1579-1591 SiSGenerateModeListFromMetaModes(ScrnInf Link Here
1579
	      if(!mode2) {
1585
	      if(!mode2) {
1580
		 xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
1586
		 xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
1581
		     "Mode \"%s\" is not a supported mode for CRT2\n", mode1->name);
1587
		     "Mode \"%s\" is not a supported mode for CRT2\n", mode1->name);
1588
                 xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
1589
                     "\t(Skipping metamode \"%s\")\n", modename);
1582
		 mode1 = NULL;
1590
		 mode1 = NULL;
1583
	      } else {
1591
	      } else {
1584
		 result = SiSCopyModeNLink(pScrn, result, mode1, mode2, sr);
1592
		 result = SiSCopyModeNLink(pScrn, result, mode1, mode2, sr);
1585
		 mode1 = NULL;
1593
		 mode1 = NULL;
1586
		 mode2 = NULL;
1594
		 mode2 = NULL;
1587
	      }
1595
	      }
1588
	      gotplus = FALSE;
1596
	      gotsep = 0;
1589
	   }
1597
	   }
1590
	   break;
1598
	   break;
1591
1599

Return to bug 104069