Changeset 18751 in vbox for trunk/src/VBox
- Timestamp:
- Apr 6, 2009 12:05:01 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VBoxSDL/VBoxSDL.cpp
r18494 r18751 659 659 { 660 660 RTPrintf("Usage:\n" 661 " - vm <id|name>Virtual machine to start, either UUID or name\n"662 " - hda <file>Set temporary first hard disk to file\n"663 " - fda <file>Set temporary first floppy disk to file\n"664 " - cdrom <file>Set temporary CDROM/DVD to file/device ('none' to unmount)\n"665 " - boot <a|c|d|n>Set temporary boot device (a = floppy, c = 1st HD, d = DVD, n = network)\n"666 " - m <size>Set temporary memory size in megabytes\n"667 " - vram <size>Set temporary size of video memory in megabytes\n"668 " - fullscreenStart VM in fullscreen mode\n"669 " - fullscreenresizeResize the guest on fullscreen\n"670 " - fixedmode <w> <h> <bpp> Use a fixed SDL video mode with given width, height and bits per pixel\n"671 " - nofstoggleForbid switching to/from fullscreen mode\n"672 " - noresizeMake the SDL frame non resizable\n"673 " - nohostkeyDisable all hostkey combinations\n"674 " - nohostkeys ...Disable specific hostkey combinations, see below for valid keys\n"675 " - nograbonclickDisable mouse/keyboard grabbing on mouse click w/o additions\n"676 " - detecthostkeyGet the hostkey identifier and modifier state\n"677 " - hostkey <key> {<key2>} <mod> Set the host key to the values obtained using-detecthostkey\n"678 " - termacpiSend an ACPI power button event when closing the window\n"661 " --startvm <uuid|name> Virtual machine to start, either UUID or name\n" 662 " --hda <file> Set temporary first hard disk to file\n" 663 " --fda <file> Set temporary first floppy disk to file\n" 664 " --cdrom <file> Set temporary CDROM/DVD to file/device ('none' to unmount)\n" 665 " --boot <a|c|d|n> Set temporary boot device (a = floppy, c = 1st HD, d = DVD, n = network)\n" 666 " --memory <size> Set temporary memory size in megabytes\n" 667 " --vram <size> Set temporary size of video memory in megabytes\n" 668 " --fullscreen Start VM in fullscreen mode\n" 669 " --fullscreenresize Resize the guest on fullscreen\n" 670 " --fixedmode <w> <h> <bpp> Use a fixed SDL video mode with given width, height and bits per pixel\n" 671 " --nofstoggle Forbid switching to/from fullscreen mode\n" 672 " --noresize Make the SDL frame non resizable\n" 673 " --nohostkey Disable all hostkey combinations\n" 674 " --nohostkeys ... Disable specific hostkey combinations, see below for valid keys\n" 675 " --nograbonclick Disable mouse/keyboard grabbing on mouse click w/o additions\n" 676 " --detecthostkey Get the hostkey identifier and modifier state\n" 677 " --hostkey <key> {<key2>} <mod> Set the host key to the values obtained using --detecthostkey\n" 678 " --termacpi Send an ACPI power button event when closing the window\n" 679 679 #if defined(RT_OS_LINUX) || defined(RT_OS_DARWIN) /** @todo UNIXISH_TAP stuff out of main and up to Config.kmk! */ 680 " - evdevkeymapUse evdev keycode map\n"680 " --evdevkeymap Use evdev keycode map\n" 681 681 #endif 682 682 #ifdef VBOX_WITH_VRDP 683 " - vrdp <port>Listen for VRDP connections on port (default if not specified)\n"684 #endif 685 " - discardstateDiscard saved state (if present) and revert to last snapshot (if present)\n"683 " --vrdp <port> Listen for VRDP connections on port (default if not specified)\n" 684 #endif 685 " --discardstate Discard saved state (if present) and revert to last snapshot (if present)\n" 686 686 #ifdef VBOX_SECURELABEL 687 " - securelabelDisplay a secure VM label at the top of the screen\n"688 " - seclabelfntTrueType (.ttf) font file for secure session label\n"689 " - seclabelsizFont point size for secure session label (default 12)\n"690 " - seclabelofsFont offset within the secure label (default 0)\n"691 " - seclabelfgcol <rgb>Secure label text color RGB value in 6 digit hexadecimal (eg: FFFF00)\n"692 " - seclabelbgcol <rgb>Secure label background color RGB value in 6 digit hexadecimal (eg: FF0000)\n"687 " --securelabel Display a secure VM label at the top of the screen\n" 688 " --seclabelfnt TrueType (.ttf) font file for secure session label\n" 689 " --seclabelsiz Font point size for secure session label (default 12)\n" 690 " --seclabelofs Font offset within the secure label (default 0)\n" 691 " --seclabelfgcol <rgb> Secure label text color RGB value in 6 digit hexadecimal (eg: FFFF00)\n" 692 " --seclabelbgcol <rgb> Secure label background color RGB value in 6 digit hexadecimal (eg: FF0000)\n" 693 693 #endif 694 694 #ifdef VBOXSDL_ADVANCED_OPTIONS 695 " - [no]rawr0Enable or disable raw ring 3\n"696 " - [no]rawr3Enable or disable raw ring 0\n"697 " - [no]patmEnable or disable PATM\n"698 " - [no]csamEnable or disable CSAM\n"699 " - [no]hwvirtex Permit or deny the usage of VMX/SVN\n"695 " --[no]rawr0 Enable or disable raw ring 3\n" 696 " --[no]rawr3 Enable or disable raw ring 0\n" 697 " --[no]patm Enable or disable PATM\n" 698 " --[no]csam Enable or disable CSAM\n" 699 " --[no]hwvirtex Permit or deny the usage of VT-x/AMD-V\n" 700 700 #endif 701 701 "\n" 702 " - convertSettingsAllow to auto-convert settings files\n"703 " - convertSettingsBackupAllow to auto-convert settings files\n"702 " --convertSettings Allow to auto-convert settings files\n" 703 " --convertSettingsBackup Allow to auto-convert settings files\n" 704 704 " but create backup copies before\n" 705 " - convertSettingsIgnoreAllow to auto-convert settings files\n"705 " --convertSettingsIgnore Allow to auto-convert settings files\n" 706 706 " but don't explicitly save the results\n" 707 707 "\n" … … 884 884 "line and repeat the command:\n" 885 885 "\n" 886 " - convertSettings - to save all auto-converted files (it will not\n"887 " be possible to use these settings files with an\n"888 " older version of VirtualBox in the future);\n"889 " - convertSettingsBackup - to create backup copies of the settings files in\n"890 " the old format before saving them in the new format;\n"891 " - convertSettingsIgnore - to not save the auto-converted settings files.\n"886 " --convertSettings - to save all auto-converted files (it will not\n" 887 " be possible to use these settings files with an\n" 888 " older version of VirtualBox in the future);\n" 889 " --convertSettingsBackup - to create backup copies of the settings files in\n" 890 " the old format before saving them in the new format;\n" 891 " --convertSettingsIgnore - to not save the auto-converted settings files.\n" 892 892 "\n" 893 "Note that if you use - convertSettingsIgnore, the auto-converted settings files\n"893 "Note that if you use --convertSettingsIgnore, the auto-converted settings files\n" 894 894 "will be implicitly saved in the new format anyway once you change a setting or\n" 895 895 "start a virtual machine, but NO backup copies will be created in this case.\n"); … … 974 974 * we initialize anything COM related 975 975 */ 976 if (argc == 2 && !strcmp(argv[1], "-detecthostkey")) 976 if (argc == 2 && ( !strcmp(argv[1], "-detecthostkey") 977 || !strcmp(argv[1], "--detecthostkey"))) 977 978 { 978 979 int rc = SDL_InitSubSystem(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_NOPARACHUTE); … … 989 990 } 990 991 991 RTPrintf("Please hit one or two function key(s) to get the - hostkey value...\n");992 RTPrintf("Please hit one or two function key(s) to get the --hostkey value...\n"); 992 993 993 994 SDL_Event event1; … … 1003 1004 { 1004 1005 /* pressed additional host key */ 1005 RTPrintf("- hostkey %d", event1.key.keysym.sym);1006 RTPrintf("--hostkey %d", event1.key.keysym.sym); 1006 1007 if (event2.type == SDL_KEYDOWN) 1007 1008 { … … 1206 1207 for (int curArg = 1; curArg < argc; curArg++) 1207 1208 { 1208 if ( strcmp(argv[curArg], "-vm") == 0 1209 || strcmp(argv[curArg], "-startvm") == 0) 1209 if ( !strcmp(argv[curArg], "--vm") 1210 || !strcmp(argv[curArg], "-vm") 1211 || !strcmp(argv[curArg], "--startvm") 1212 || !strcmp(argv[curArg], "-startvm") 1213 || !strcmp(argv[curArg], "-s") 1214 ) 1210 1215 { 1211 1216 if (++curArg >= argc) … … 1222 1227 } 1223 1228 } 1224 else if (strcmp(argv[curArg], "-boot") == 0) 1229 else if ( !strcmp(argv[curArg], "--comment") 1230 || !strcmp(argv[curArg], "-comment")) 1231 { 1232 if (++curArg >= argc) 1233 { 1234 RTPrintf("Error: missing argument for comment!\n"); 1235 rc = E_FAIL; 1236 break; 1237 } 1238 } 1239 else if ( !strcmp(argv[curArg], "--boot") 1240 || !strcmp(argv[curArg], "-boot")) 1225 1241 { 1226 1242 if (++curArg >= argc) … … 1266 1282 break; 1267 1283 } 1268 else if (strcmp(argv[curArg], "-m") == 0) 1284 else if ( !strcmp(argv[curArg], "--memory") 1285 || !strcmp(argv[curArg], "-memory") 1286 || !strcmp(argv[curArg], "-m")) 1269 1287 { 1270 1288 if (++curArg >= argc) … … 1276 1294 memorySize = atoi(argv[curArg]); 1277 1295 } 1278 else if (strcmp(argv[curArg], "-vram") == 0) 1296 else if ( !strcmp(argv[curArg], "--vram") 1297 || !strcmp(argv[curArg], "-vram")) 1279 1298 { 1280 1299 if (++curArg >= argc) … … 1286 1305 vramSize = atoi(argv[curArg]); 1287 1306 } 1288 else if (strcmp(argv[curArg], "-fullscreen") == 0) 1307 else if ( !strcmp(argv[curArg], "--fullscreen") 1308 || !strcmp(argv[curArg], "-fullscreen")) 1289 1309 { 1290 1310 fFullscreen = true; 1291 1311 } 1292 else if (strcmp(argv[curArg], "-fullscreenresize") == 0) 1312 else if ( !strcmp(argv[curArg], "--fullscreenresize") 1313 || !strcmp(argv[curArg], "-fullscreenresize")) 1293 1314 { 1294 1315 gfFullscreenResize = true; … … 1297 1318 #endif 1298 1319 } 1299 else if (strcmp(argv[curArg], "-fixedmode") == 0) 1320 else if ( !strcmp(argv[curArg], "--fixedmode") 1321 || !strcmp(argv[curArg], "-fixedmode")) 1300 1322 { 1301 1323 /* three parameters follow */ … … 1310 1332 fixedBPP = atoi(argv[++curArg]); 1311 1333 } 1312 else if (strcmp(argv[curArg], "-nofstoggle") == 0) 1334 else if ( !strcmp(argv[curArg], "--nofstoggle") 1335 || !strcmp(argv[curArg], "-nofstoggle")) 1313 1336 { 1314 1337 gfAllowFullscreenToggle = FALSE; 1315 1338 } 1316 else if (strcmp(argv[curArg], "-noresize") == 0) 1339 else if ( !strcmp(argv[curArg], "--noresize") 1340 || !strcmp(argv[curArg], "-noresize")) 1317 1341 { 1318 1342 fResizable = false; 1319 1343 } 1320 else if (strcmp(argv[curArg], "-nohostkey") == 0) 1344 else if ( !strcmp(argv[curArg], "--nohostkey") 1345 || !strcmp(argv[curArg], "-nohostkey")) 1321 1346 { 1322 1347 gHostKeyMod = 0; 1323 1348 gHostKeySym1 = 0; 1324 1349 } 1325 else if (strcmp(argv[curArg], "-nohostkeys") == 0) 1350 else if ( !strcmp(argv[curArg], "--nohostkeys") 1351 || !strcmp(argv[curArg], "-nohostkeys")) 1326 1352 { 1327 1353 if (++curArg >= argc) … … 1346 1372 break; 1347 1373 } 1348 else if (strcmp(argv[curArg], "-nograbonclick") == 0) 1374 else if ( !strcmp(argv[curArg], "--nograbonclick") 1375 || !strcmp(argv[curArg], "-nograbonclick")) 1349 1376 { 1350 1377 gfGrabOnMouseClick = FALSE; 1351 1378 } 1352 else if (strcmp(argv[curArg], "-termacpi") == 0) 1379 else if ( !strcmp(argv[curArg], "--termacpi") 1380 || !strcmp(argv[curArg], "-termacpi")) 1353 1381 { 1354 1382 gfACPITerm = TRUE; 1355 1383 } 1356 else if (strcmp(argv[curArg], "-pidfile") == 0) 1384 else if ( !strcmp(argv[curArg], "--pidfile") 1385 || !strcmp(argv[curArg], "-pidfile")) 1357 1386 { 1358 1387 if (++curArg >= argc) 1359 1388 { 1360 RTPrintf("Error: missing file name for - pidfile!\n");1389 RTPrintf("Error: missing file name for --pidfile!\n"); 1361 1390 rc = E_FAIL; 1362 1391 break; … … 1364 1393 gpszPidFile = argv[curArg]; 1365 1394 } 1366 else if (strcmp(argv[curArg], "-hda") == 0) 1395 else if ( !strcmp(argv[curArg], "--hda") 1396 || !strcmp(argv[curArg], "-hda")) 1367 1397 { 1368 1398 if (++curArg >= argc) … … 1382 1412 } 1383 1413 } 1384 else if (strcmp(argv[curArg], "-fda") == 0) 1414 else if ( !strcmp(argv[curArg], "--fda") 1415 || !strcmp(argv[curArg], "-fda")) 1385 1416 { 1386 1417 if (++curArg >= argc) … … 1400 1431 } 1401 1432 } 1402 else if (strcmp(argv[curArg], "-cdrom") == 0) 1433 else if ( !strcmp(argv[curArg], "--cdrom") 1434 || !strcmp(argv[curArg], "-cdrom")) 1403 1435 { 1404 1436 if (++curArg >= argc) … … 1419 1451 } 1420 1452 #ifdef RT_OS_LINUX 1421 else if (strcmp(argv[curArg], "-evdevkeymap") == 0) 1453 else if ( !strcmp(argv[curArg], "--evdevkeymap") 1454 || !strcmp(argv[curArg], "-evdevkeymap")) 1422 1455 { 1423 1456 guseEvdevKeymap = TRUE; … … 1425 1458 #endif /* RT_OS_LINUX */ 1426 1459 #ifdef VBOX_WITH_VRDP 1427 else if (strcmp(argv[curArg], "-vrdp") == 0) 1460 else if ( !strcmp(argv[curArg], "--vrdp") 1461 || !strcmp(argv[curArg], "-vrdp")) 1428 1462 { 1429 1463 // start with the standard VRDP port … … 1444 1478 } 1445 1479 #endif /* VBOX_WITH_VRDP */ 1446 else if (strcmp(argv[curArg], "-discardstate") == 0) 1480 else if ( !strcmp(argv[curArg], "--discardstate") 1481 || !strcmp(argv[curArg], "-discardstate")) 1447 1482 { 1448 1483 fDiscardState = true; 1449 1484 } 1450 1485 #ifdef VBOX_SECURELABEL 1451 else if (strcmp(argv[curArg], "-securelabel") == 0) 1486 else if ( !strcmp(argv[curArg], "--securelabel") 1487 || !strcmp(argv[curArg], "-securelabel")) 1452 1488 { 1453 1489 fSecureLabel = true; 1454 1490 LogFlow(("Secure labelling turned on\n")); 1455 1491 } 1456 else if (strcmp(argv[curArg], "-seclabelfnt") == 0) 1492 else if ( !strcmp(argv[curArg], "--seclabelfnt") 1493 || !strcmp(argv[curArg], "-seclabelfnt")) 1457 1494 { 1458 1495 if (++curArg >= argc) … … 1464 1501 secureLabelFontFile = argv[curArg]; 1465 1502 } 1466 else if (strcmp(argv[curArg], "-seclabelsiz") == 0) 1503 else if ( !strcmp(argv[curArg], "--seclabelsiz") 1504 || !strcmp(argv[curArg], "-seclabelsiz")) 1467 1505 { 1468 1506 if (++curArg >= argc) … … 1474 1512 secureLabelPointSize = atoi(argv[curArg]); 1475 1513 } 1476 else if (strcmp(argv[curArg], "-seclabelofs") == 0) 1514 else if ( !strcmp(argv[curArg], "--seclabelofs") 1515 || !strcmp(argv[curArg], "-seclabelofs")) 1477 1516 { 1478 1517 if (++curArg >= argc) … … 1484 1523 secureLabelFontOffs = atoi(argv[curArg]); 1485 1524 } 1486 else if (strcmp(argv[curArg], "-seclabelfgcol") == 0) 1525 else if ( !strcmp(argv[curArg], "--seclabelfgcol") 1526 || !strcmp(argv[curArg], "-seclabelfgcol")) 1487 1527 { 1488 1528 if (++curArg >= argc) … … 1494 1534 sscanf(argv[curArg], "%X", &secureLabelColorFG); 1495 1535 } 1496 else if (strcmp(argv[curArg], "-seclabelbgcol") == 0) 1536 else if ( !strcmp(argv[curArg], "--seclabelbgcol") 1537 || !strcmp(argv[curArg], "-seclabelbgcol")) 1497 1538 { 1498 1539 if (++curArg >= argc) … … 1506 1547 #endif 1507 1548 #ifdef VBOXSDL_ADVANCED_OPTIONS 1508 else if (strcmp(argv[curArg], "-rawr0") == 0) 1549 else if ( !strcmp(argv[curArg], "--rawr0") 1550 || !strcmp(argv[curArg], "-rawr0")) 1509 1551 fRawR0 = true; 1510 else if (strcmp(argv[curArg], "-norawr0") == 0) 1552 else if ( !strcmp(argv[curArg], "--norawr0") 1553 || !strcmp(argv[curArg], "-norawr0")) 1511 1554 fRawR0 = false; 1512 else if (strcmp(argv[curArg], "-rawr3") == 0) 1555 else if ( !strcmp(argv[curArg], "--rawr3") 1556 || !strcmp(argv[curArg], "-rawr3")) 1513 1557 fRawR3 = true; 1514 else if (strcmp(argv[curArg], "-norawr3") == 0) 1558 else if ( !strcmp(argv[curArg], "--norawr3") 1559 || !strcmp(argv[curArg], "-norawr3")) 1515 1560 fRawR3 = false; 1516 else if (strcmp(argv[curArg], "-patm") == 0) 1561 else if ( !strcmp(argv[curArg], "--patm") 1562 || !strcmp(argv[curArg], "-patm")) 1517 1563 fPATM = true; 1518 else if (strcmp(argv[curArg], "-nopatm") == 0) 1564 else if ( !strcmp(argv[curArg], "--nopatm") 1565 || !strcmp(argv[curArg], "-nopatm")) 1519 1566 fPATM = false; 1520 else if (strcmp(argv[curArg], "-csam") == 0) 1567 else if ( !strcmp(argv[curArg], "--csam") 1568 || !strcmp(argv[curArg], "-csam")) 1521 1569 fCSAM = true; 1522 else if (strcmp(argv[curArg], "-nocsam") == 0) 1570 else if ( !strcmp(argv[curArg], "--nocsam") 1571 || !strcmp(argv[curArg], "-nocsam")) 1523 1572 fCSAM = false; 1524 else if (strcmp(argv[curArg], "-hwvirtex") == 0) 1573 else if ( !strcmp(argv[curArg], "--hwvirtex") 1574 || !strcmp(argv[curArg], "-hwvirtex")) 1525 1575 fHWVirt = TSBool_True; 1526 else if (strcmp(argv[curArg], "-nohwvirtex") == 0) 1576 else if ( !strcmp(argv[curArg], "--nohwvirtex") 1577 || !strcmp(argv[curArg], "-nohwvirtex")) 1527 1578 fHWVirt = TSBool_False; 1528 else if (strcmp(argv[curArg], "-warpdrive") == 0) 1579 else if ( !strcmp(argv[curArg], "--warpdrive") 1580 || !strcmp(argv[curArg], "-warpdrive")) 1529 1581 { 1530 1582 if (++curArg >= argc) 1531 1583 { 1532 RTPrintf("Error: missing the rate value for the - warpdrive option!\n");1584 RTPrintf("Error: missing the rate value for the --warpdrive option!\n"); 1533 1585 rc = E_FAIL; 1534 1586 break; … … 1544 1596 #endif /* VBOXSDL_ADVANCED_OPTIONS */ 1545 1597 #ifdef VBOX_WIN32_UI 1546 else if (strcmp(argv[curArg], "-win32ui") == 0) 1598 else if ( !strcmp(argv[curArg], "--win32ui") 1599 || !strcmp(argv[curArg], "-win32ui")) 1547 1600 fWin32UI = true; 1548 1601 #endif 1549 else if (strcmp(argv[curArg], "-showsdlconfig") == 0) 1602 else if ( !strcmp(argv[curArg], "--showsdlconfig") 1603 || !strcmp(argv[curArg], "-showsdlconfig")) 1550 1604 fShowSDLConfig = true; 1551 else if (strcmp(argv[curArg], "-hostkey") == 0) 1605 else if ( !strcmp(argv[curArg], "--hostkey") 1606 || !strcmp(argv[curArg], "-hostkey")) 1552 1607 { 1553 1608 if (++curArg + 1 >= argc) … … 1565 1620 gHostKeyMod = atoi(argv[curArg]); 1566 1621 } 1567 else if (strcmp(argv[curArg], "-convertSettings") == 0) 1622 else if ( !strcmp(argv[curArg], "--convertSettings") 1623 || !strcmp(argv[curArg], "-convertSettings")) 1568 1624 fConvertSettings = ConvertSettings_Yes; 1569 else if (strcmp(argv[curArg], "-convertSettingsBackup") == 0) 1625 else if ( !strcmp(argv[curArg], "--convertSettingsBackup") 1626 || !strcmp(argv[curArg], "-convertSettingsBackup")) 1570 1627 fConvertSettings = ConvertSettings_Backup; 1571 else if (strcmp(argv[curArg], "-convertSettingsIgnore") == 0) 1628 else if ( !strcmp(argv[curArg], "--convertSettingsIgnore") 1629 || !strcmp(argv[curArg], "-convertSettingsIgnore")) 1572 1630 fConvertSettings = ConvertSettings_Ignore; 1573 1631 /* just show the help screen */ 1574 1632 else 1575 1633 { 1576 if ( strcmp(argv[curArg], "-h") != 01577 && strcmp(argv[curArg], "-help") != 01634 if ( strcmp(argv[curArg], "-h") 1635 && strcmp(argv[curArg], "-help") 1578 1636 && strcmp(argv[curArg], "--help")) 1579 1637 RTPrintf("Error: unrecognized switch '%s'\n", argv[curArg]); … … 1702 1760 * First special case 'none' to unmount 1703 1761 */ 1704 if ( strcmp (fdaFile, "none") == 0)1762 if (!strcmp (fdaFile, "none")) 1705 1763 { 1706 1764 CHECK_ERROR_BREAK (drive, Unmount()); … … 1763 1821 * First special case 'none' to unmount 1764 1822 */ 1765 if ( strcmp (cdromFile, "none") == 0)1823 if (!strcmp (cdromFile, "none")) 1766 1824 { 1767 1825 CHECK_ERROR_BREAK (drive, Unmount()); … … 2065 2123 if (!gMachineDebugger) 2066 2124 { 2067 RTPrintf("Error: No debugger object; - warpdrive %d cannot be executed!\n", u32WarpDrive);2125 RTPrintf("Error: No debugger object; --warpdrive %d cannot be executed!\n", u32WarpDrive); 2068 2126 goto leave; 2069 2127 } … … 3412 3470 3413 3471 #elif RT_OS_OS2 3414 3472 keycode = Keyevent2KeycodeFallback(ev); 3415 3473 #endif /* RT_OS_DARWIN */ 3416 3474 return keycode; … … 4158 4216 * Don't update if it didn't change. 4159 4217 */ 4160 if ( strcmp(szTitle, szPrevTitle) == 0)4218 if (!strcmp(szTitle, szPrevTitle)) 4161 4219 return; 4162 4220
Note:
See TracChangeset
for help on using the changeset viewer.