This file is not considered part of GNU Emacs.
-This program is free software; you can redistribute it and/or modify
+This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with this program; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA. */
+along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* NB To comply with the above BSD license, copyright information is
* 1985 Emacs TAGS format by Richard Stallman.
* 1989 Sam Kendall added C++.
* 1992 Joseph B. Wells improved C and C++ parsing.
- * 1993 Francesco Potortì reorganised C and C++.
+ * 1993 Francesco Potortì reorganized C and C++.
* 1994 Line-by-line regexp tags by Tom Tromey.
* 2001 Nested classes by Francesco Potortì (concept by Mykola Dzyuba).
* 2002 #line directives by Francesco Potortì.
pfatal (file);
cleanup:
- if (compressed_name) free (compressed_name);
- if (uncompressed_name) free (uncompressed_name);
+ free (compressed_name);
+ free (uncompressed_name);
last_node = NULL;
curfdp = NULL;
return;
{
register node *node_right = np->right;
free_tree (np->left);
- if (np->name != NULL)
- free (np->name);
+ free (np->name);
free (np->regex);
free (np);
np = node_right;
free_fdesc (fdp)
register fdesc *fdp;
{
- if (fdp->infname != NULL) free (fdp->infname);
- if (fdp->infabsname != NULL) free (fdp->infabsname);
- if (fdp->infabsdir != NULL) free (fdp->infabsdir);
- if (fdp->taggedfname != NULL) free (fdp->taggedfname);
- if (fdp->prop != NULL) free (fdp->prop);
+ free (fdp->infname);
+ free (fdp->infabsname);
+ free (fdp->infabsdir);
+ free (fdp->taggedfname);
+ free (fdp->prop);
free (fdp);
}
nl >= 0 && cstack.bracelev[nl] >= bracelev;
nl--)
{
- if (cstack.cname[nl] != NULL)
- free (cstack.cname[nl]);
+ free (cstack.cname[nl]);
cstack.nl = nl;
}
}
last[len] = '\0';
}
}
- if (last != NULL)
- free (last);
+ free (last);
}
last[len] = '\0';
}
}
- if (last != NULL)
- free (last);
+ free (last);
}
/* Build a sequence of "../" strings for the resulting relative file name. */
i = 0;
+ while (*dp == '/')
+ ++dp;
while ((dp = etags_strchr (dp + 1, '/')) != NULL)
- i += 1;
+ {
+ i += 1;
+ while (*dp == '/')
+ ++dp;
+ }
res = xnew (3*i + strlen (fp + 1) + 1, char);
res[0] = '\0';
while (i-- > 0)