aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-06-28 15:48:17 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-06-28 15:48:17 -0400
commitc62bdc79b57139c736f1e854c3a26ba86f1573b9 (patch)
treeb04a5dcb0ae416594ce4a568fca86a33374b2ebf
parentc0318c9910bdfc53afa531716a2e2295a8dc5bd7 (diff)
downloadgcc-c62bdc79b57139c736f1e854c3a26ba86f1573b9.zip
gcc-c62bdc79b57139c736f1e854c3a26ba86f1573b9.tar.gz
gcc-c62bdc79b57139c736f1e854c3a26ba86f1573b9.tar.bz2
(strip_off_ending): Strip off any ending; don't pretend we know what
valid endings are. From-SVN: r10068
-rw-r--r--gcc/toplev.c36
1 files changed, 9 insertions, 27 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 6fc9c94..c8f827f 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -1857,39 +1857,21 @@ pipe_closed (signo)
}
/* Strip off a legitimate source ending from the input string NAME of
- length LEN. */
+ length LEN. Rather than having to know the names used by all of
+ our front ends, we strip off an ending of a period followed by one,
+ two, or three characters. */
void
strip_off_ending (name, len)
char *name;
int len;
{
- if (len > 2 && ! strcmp (".c", name + len - 2))
- name[len - 2] = 0;
- else if (len > 2 && ! strcmp (".m", name + len - 2))
- name[len - 2] = 0;
- else if (len > 2 && ! strcmp (".i", name + len - 2))
- name[len - 2] = 0;
- else if (len > 3 && ! strcmp (".ii", name + len - 3))
- name[len - 3] = 0;
- else if (len > 3 && ! strcmp (".co", name + len - 3))
- name[len - 3] = 0;
- else if (len > 3 && ! strcmp (".cc", name + len - 3))
- name[len - 3] = 0;
- else if (len > 2 && ! strcmp (".C", name + len - 2))
- name[len - 2] = 0;
- else if (len > 4 && ! strcmp (".cxx", name + len - 4))
- name[len - 4] = 0;
- else if (len > 4 && ! strcmp (".cpp", name + len - 4))
- name[len - 4] = 0;
- else if (len > 2 && ! strcmp (".f", name + len - 2))
- name[len - 2] = 0;
- /* Ada will use extensions like .ada, .adb, and .ads, so just test
- for "ad". */
- else if (len > 4 && ! strncmp (".ad", name + len - 4, 3))
- name[len - 4] = 0;
- else if (len > 4 && ! strcmp (".atr", name + len - 4))
- name[len - 4] = 0;
+ if (len > 2 && name[len - 2] == '.')
+ name[len - 2] = '\0';
+ else if (len > 3 && name[len - 3] == '.')
+ name[len - 3] = '\0';
+ else if (len > 4 && name[len - 4] == '.')
+ name[len - 4] = '\0';
}
/* Output a quoted string. */