Browse Source

Add a new "os family" win9x. If I had a decent name for Windows that

is NT or 2000 or XP I would have added a family as well 8-)

Take advantage of that new family in Execute.


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271005 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 23 years ago
parent
commit
17243cca1d
3 changed files with 14 additions and 13 deletions
  1. +1
    -0
      docs/manual/CoreTasks/conditions.html
  2. +2
    -10
      src/main/org/apache/tools/ant/taskdefs/Execute.java
  3. +11
    -3
      src/main/org/apache/tools/ant/taskdefs/condition/Os.java

+ 1
- 0
docs/manual/CoreTasks/conditions.html View File

@@ -92,6 +92,7 @@ the tests succeed.
<li>unix (for all Unix and Unix-like operating systems)</li> <li>unix (for all Unix and Unix-like operating systems)</li>
<li>netware (for Novell NetWare)</li> <li>netware (for Novell NetWare)</li>
<li>os/2 (for OS/2)</li> <li>os/2 (for OS/2)</li>
<li>win9x for Microsoft Windows 95 and 98</li>
</ul> </ul>


<h4>equals</h4> <h4>equals</h4>


+ 2
- 10
src/main/org/apache/tools/ant/taskdefs/Execute.java View File

@@ -137,13 +137,7 @@ public class Execute {
baseLauncher = new CommandLauncher(); baseLauncher = new CommandLauncher();
} }


// Determine if we're running under XP/2000/NT or 98/95
String osname =
System.getProperty("os.name").toLowerCase(Locale.US);

if ( osname.indexOf("nt") >= 0 ||
osname.indexOf("2000") >= 0 ||
osname.indexOf("xp") >= 0 ) {
if ( !Os.isFamily("win9x") ) {
// Windows XP/2000/NT // Windows XP/2000/NT
shellLauncher = new WinNTCommandLauncher(baseLauncher); shellLauncher = new WinNTCommandLauncher(baseLauncher);
} }
@@ -236,9 +230,7 @@ public class Execute {
String osname = String osname =
System.getProperty("os.name").toLowerCase(Locale.US); System.getProperty("os.name").toLowerCase(Locale.US);
// Determine if we're running under XP/2000/NT or 98/95 // Determine if we're running under XP/2000/NT or 98/95
if ( osname.indexOf("nt") >= 0 ||
osname.indexOf("2000") >= 0 ||
osname.indexOf("xp") >= 0 ) {
if ( !Os.isFamily("win9x") ) {
// Windows XP/2000/NT // Windows XP/2000/NT
String[] cmd = {"cmd", "/c", "set" }; String[] cmd = {"cmd", "/c", "set" };
return cmd; return cmd;


+ 11
- 3
src/main/org/apache/tools/ant/taskdefs/condition/Os.java View File

@@ -1,7 +1,7 @@
/* /*
* The Apache Software License, Version 1.1 * The Apache Software License, Version 1.1
* *
* Copyright (c) 2001 The Apache Software Foundation. All rights
* Copyright (c) 2001-2002 The Apache Software Foundation. All rights
* reserved. * reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -90,12 +90,15 @@ public class Os implements Condition {
* *
* @param f The OS family type desired<br /> * @param f The OS family type desired<br />
* Possible values:<br /> * Possible values:<br />
* <ul><li>dos</li>
* <ul>
* <li>dos</li>
* <li>mac</li> * <li>mac</li>
* <li>netware</li> * <li>netware</li>
* <li>os/2</li> * <li>os/2</li>
* <li>unix</li> * <li>unix</li>
* <li>windows</li></ul>
* <li>windows</li>
* <li>win9x</li>
* </ul>
*/ */
public void setFamily(String f) {family = f.toLowerCase(Locale.US);} public void setFamily(String f) {family = f.toLowerCase(Locale.US);}


@@ -212,6 +215,11 @@ public class Os implements Condition {
} else if (family.equals("unix")) { } else if (family.equals("unix")) {
isFamily = pathSep.equals(":") isFamily = pathSep.equals(":")
&& (!isFamily("mac") || osName.endsWith("x")); && (!isFamily("mac") || osName.endsWith("x"));
} else if (family.equals("win9x")) {
isFamily = isFamily("windows") &&
!(osName.indexOf("nt") >= 0 ||
osName.indexOf("2000") >= 0 ||
osName.indexOf("xp") >= 0 );
} else { } else {
throw new BuildException( throw new BuildException(
"Don\'t know how to detect os family \"" "Don\'t know how to detect os family \""


Loading…
Cancel
Save