aboutsummaryrefslogtreecommitdiff
path: root/posix
AgeCommit message (Collapse)Author
2001-12-05Update.Ulrich Drepper
* iconvdata/ibm1129.h: Remove duplicate mappings. * iconvdata/ibm937.c: Handle overflow errors. Handle new tables. * iconvdata/ibm937.h: Reorganize table to safe a lot of space. Patch by Masahide Washizawa <WASHI@jp.ibm.com>. * timezone/zic.c: Fix handling of turnaround times. Patch by Arthur David Olson <olsona@dc37a.nci.nih.gov>. 2001-12-02 Moshe Olshansky <OLSHANSK@il.ibm.com> * sysdeps/ieee754/dbl-64/e_remainder.c (__ieee754_remainder): Fix overflow problem. 2001-12-05 Ulrich Drepper <drepper@redhat.com> * posix/regex.c: For use outside glibc defined bounded pointer macros here. Patch by Jim Meyering <jim@meyering.net>.
2001-11-29Update.Ulrich Drepper
2001-11-29 Jakub Jelinek <jakub@redhat.com> * sysdeps/generic/glob.c (next_brace_sub): Return NULL if braces don't match, fix {{a,b},c} globbing, clean up. Patch by Flavio Veloso <flaviovs@magnux.com>. * posix/globtest.sh: Add new tests.
2001-11-29Update.Ulrich Drepper
2001-11-29 Ulrich Drepper <drepper@redhat.com> * posix/regex.h: Define __restrict_arr correctly.
2001-11-27Update.Ulrich Drepper
2001-11-26 Ulrich Drepper <drepper@redhat.com> * stdio-common/vfscanf.c: If incomplete nan of inf(inity) strings are found call conv_error and not input_error [PR libc/2669]. * math/bits/mathcalls.h: Mark ceil and floor as const. Reported by David Mosberger. 2001-11-21 Jim Meyering <meyering@lucent.com> * posix/regex.c (iswctype, mbrtowc, wcslen, wcscoll, wcrtomb) [_LIBC]: Define to be __-prefixed. Remove unnecessary duplication in `#ifdef _LIBC' blocks.
2001-11-19* include/features.h (__GLIBC_HAVE_LONG_LONG): Define for Andreas Jaeger
compilers that support it. * posix/sys/types.h: Use __GLIBC_HAVE_LONG_LONG. * sysdeps/unix/sysv/linux/bits/types.h: Likewise. * stdlib/stdlib.h: Likewise.
2001-11-17(byte_re_match_2_internal): For gcc replace switch statement with gotos.Ulrich Drepper
2001-11-15Update.Ulrich Drepper
2001-11-15 Jeff Law <law@redhat.com> * posix/regex.c (uintptr_t): Do not provide a definition if the system provided one.
2001-10-27Update.Ulrich Drepper
* posix/tst-fnmatch.input: Add tests for - at beginning and end of bracket expression. * string/tst-strxfrm.c (test): Also test __strxfrm_l.
2001-10-27Update.Ulrich Drepper
* posix/fnmatch_loop.c: Recognize - at end of bracket expression correctly.
2001-10-27Update.Ulrich Drepper
2001-10-26 Ulrich Drepper <drepper@redhat.com> * string/strxfrm.c [USE_IN_EXTENDED_LOCALE_MODEL]: Correctly get nrules value. 2001-10-24 H.J. Lu <hjl@gnu.org> * sysdeps/generic/bits/dlfcn.h (DL_CALL_FCT): Cast to void *. Use __BEGIN_DECLS/__END_DECLS around prototypes. * sysdeps/mips/bits/dlfcn.h (DL_CALL_FCT): Likewise. 2001-10-21 Jim Meyering <meyering@lucent.com> * malloc/obstack.c (_): Honor the setting of ENABLE_NLS. Otherwise, this code would end up calling gettext even in packages built with --disable-nls. * posix/getopt.c (_): Likewise. * posix/regex.c (_): Likewise. 2001-10-26 Ulrich Drepper <drepper@redhat.com> * resolv/gethnamaddr.c (gethostbyaddr): Use ip6.addr for reverse lookup not ip6.int. * resolv/nss_dns/dns-host.c (_nss_dns_gethostbyaddr_r): Likewise. Reported by Martin.v.Loewis@t-online.de [PR libc/2598]. 2001-10-19 Jakub Jelinek <jakub@redhat.com> * misc/sys/cdefs.h (__attribute_used__): Define. * elf/rtld.c (_dl_start): Add __attribute_used__. * elf/dl-runtime.c (fixup, profile_fixup): Likewise.
2001-09-14* posix/execl.c: Fix last argument of memcpy. Reported by Brian Andreas Schwab
Sumner <bls@sgi.com>. * posix/execlp.c: Likewise.
2001-09-12Update.Ulrich Drepper
* Makeconfig (preprocess-versions): Define ASSEMBLER. * stdlib/Makefile (isomac-CFLAGS): Define to -O. * posix/Makefile (annexc-CFLAGS): Define to -O.
2001-08-222001-04-23 Paul Eggert <eggert@twinsun.com>Roland McGrath
* posix/getopt.h (getopt_long, getopt_long_only, _getopt_internal): Rename __argc to ___argc in prototypes to avoid compatibility problems with systems that reserve the identifier "__argc". Similarly for __argv. 2001-08-21 Roland McGrath <roland@frob.com> * stdio-common/tst-fseek.c: Include <time.h> for `time' declaration. * mach/Makefile (tests): Removed. * mach/hello.c: File removed.
2001-08-21Update.Ulrich Drepper
2001-08-20 Martin Schwidefsky <schwidefsky@de.ibm.com> * sysdeps/unix/sysv/linux/s390/s390-32/sys/ucontext.h: Revert the change of the gregset_t type. * sysdeps/unix/sysv/linux/s390/s390-64/sys/ucontext.h: Likewise. 2001-08-20 kaz Kojima <kkojima@rr.iij4u.or.jp> * sysdeps/unix/sysv/linux/sh/sysdep.S: Align errno. * posix/regex.c (truncate_wchar): Use wcrtomb not wctomb.
2001-08-17Use __wcsoll only if _LIBC.Ulrich Drepper
2001-08-17Update.Ulrich Drepper
2001-08-17 Ulrich Drepper <drepper@redhat.com> * sunrpc/svc_simple.c (universal): Use __write instead of write. * wcsmbs/wcscoll.c: Also define __wcscoll. * include/wchar.h: Declare __wcscoll. * libio/fwprintf.c: Use __vfwprintf instead of vfwprintf. * libio/vwprintf.c: Likewise. * libio/wprintf.c: Likewise. * iconv/gconv_cache.c: Use __munmap instead of munmap. * posix/regex.c [_LIBC] (convert_mbs_to_wcs): Use __mbrtowc instead of mbrtowc. [_LIBC]: Use __iswctype instead of iswctype, __wcslen instead of wcslen, and __wcscoll instead of wcscoll. * sysdeps/unix/sockatmark.c (sockatmark): Use __ioctl instead of ioctl. * sysdeps/unix/sysv/linux/gai_sigqueue.c (__gai_sigqueue): Use __getuid instead of getuid. * stdio-common/perror.c (perror): Use __close instead of close. * iconv/gconv_cache.c (__gconv_load_cache): Likewise. * libio/freopen.c (freopen): Likewise. * libio/freopen64.c (freopen64): Likewise.
2001-08-17Update.Ulrich Drepper
* libio/tst-ungetwc2.c (main): Define str const. * include/wchar.h: Add prototypes for __fwprintf and __vfwprintf. * libio/fwprintf.c: Also define __fwprintf. * stdio-common/vfprintf.c [COMPILE_WPRINTF]: Also define __vfwprintf. * argp/argp-fmtstream.c: Handle wide oriented stderr stream. * assert/assert-perr.c: Likewise. * assert/assert.c: Likewise. * gmon/gmon.c: Likewise. * inet/rcmd.c: Likewise. * malloc/obstack.c: Likewise. * misc/err.c: Likewise. * misc/error.c: Likewise. * misc/getpass.c: Likewise. * posix/getopt.c: Likewise. * resolv/res_hconf.c: Likewise. * stdio-common/perror.c: Likewise. * stdio-common/psignal.c: Likewise. * stdlib/fmtmsg.c: Likewise. * sunrpc/auth_unix.c: Likewise. * sunrpc/clnt_perr.c: Likewise. * sunrpc/clnt_tcp.c: Likewise. * sunrpc/clnt_udp.c: Likewise. * sunrpc/clnt_unix.c: Likewise. * sunrpc/svc_simple.c: Likewise. * sunrpc/svc_tcp.c: Likewise. * sunrpc/svc_udp.c: Likewise. * sunrpc/svc_unix.c: Likewise. * sunrpc/xdr.c: Likewise. * sunrpc/xdr_array.c: Likewise. * sunrpc/xdr_rec.c: Likewise. * sunrpc/xdr_ref.c: Likewise. * sysdeps/generic/wordexp.c: Likewise. * misc/err.c: Handle wide oriented stderr stream.
2001-08-13Remove store_args_and_env which is not needed is USE_NONOPTION_FLAGS is ↵Ulrich Drepper
undefined anyhow. Use __libc_argc and __libc_argv variables.
2001-08-112001-08-11 Roland McGrath <roland@frob.com>Roland McGrath
* posix/getopt.c (nonoption_flags_max_len, nonoption_flags_len): Make these defns conditional on [USE_NONOPTION_FLAGS].
2001-08-11Update.Ulrich Drepper
2001-08-11 Ulrich Drepper <drepper@redhat.com> * config.h.in: Add #undef line for USE_NONOPTION_FLAGS. * posix/getopt_init.c: Produce code only if USE_NONOPTION_FLAGS is defined. * posix/getopt.c: Use __getopt_nonoption_flags only if USE_NONOPTION_FLAGS is defined. * sysdeps/mach/hurd/i386/init-first.c: Use __getopt_clean_environment only if USE_NONOPTION_FLAGS is defined. * sysdeps/mach/hurd/mips/init-first.c: Likewise. * sysdeps/unix/sysv/linux/init-first.c: Likewise.
2001-08-11Update.Ulrich Drepper
* posix/getopt_init.c (__getopt_clean_environment): Avoid making the strncmp calls most of the time by testing for '_' as the first character of the name.
2001-08-10Update.Ulrich Drepper
* posix/fnmatch_loop.c: Fix computation of alignment. 2001-08-09 Isamu Hasegawa <isamu@yamato.ibm.com> * posix/regex.c (wcs_regex_compile): Use appropriate string to compare with collating element. Fix the padding for the alignment. 2001-08-09 Isamu Hasegawa <isamu@yamato.ibm.com> * locale/programs/ld-collate.c (collate_output): Exclude characters from elem_table. Reduce if clause to write collating elements correctly. * posix/Makefile (tests): Add bug-regex5. * posix/bug-regex5.c: New file. 2001-08-09 Ulrich Drepper <drepper@redhat.com>
2001-08-09Robustify tilde tests.Ulrich Drepper
2001-07-30 Declare wcs functions only if compiling with MBS_SUPPORT. Don't use #elif ↵Andreas Jaeger
for traditional C.
2001-07-23Update.Ulrich Drepper
2001-07-23 Ulrich Drepper <drepper@redhat.com> * posix/regex.c: Revamp memory allocation for WCHAR functions to not use too much stack.
2001-07-18Update.Ulrich Drepper
2001-07-18 Ulrich Drepper <drepper@redhat.com> * libio/filedoalloc.c (_IO_file_doallocate): A few more minor cleanups and improvements. 2001-07-18 Andreas Schwab <schwab@suse.de> * posix/regex.c (WORDCHAR_P) [WCHAR]: Also return true for the underscore character. 2001-07-18 Jakub Jelinek <jakub@redhat.com> * malloc/malloc (new_heap): Don't call munmap for zero length. 2001-07-18 Ulrich Drepper <drepper@redhat.com> * libio/filedoalloc.c (_IO_file_doallocate): Use DEV_TTY_P if available to determine whether descriptor is for tty before calling isatty. * sysdeps/unix/sysv/linux/device-nrs.h: Define DEV_TTY_P. * sysdeps/generic/device-nrs.h: Likewise.
2001-07-07Update.Ulrich Drepper
* posix/regex.c: Limit string length printed in debug messages to 100 chars.
2001-07-06Update to LGPL v2.1.Andreas Jaeger
2001-07-06 Paul Eggert <eggert@twinsun.com> * manual/argp.texi: Remove ignored LGPL copyright notice; it's not appropriate for documentation anyway. * manual/libc-texinfo.sh: "Library General Public License" -> "Lesser General Public License". 2001-07-06 Andreas Jaeger <aj@suse.de> * All files under GPL/LGPL version 2: Place under LGPL version 2.1.
2001-06-27Update.Ulrich Drepper
* posix/tst-regex.c: Pass REG_NEWLINE to regcomp. Add extra tests. Restrict printing of string in debug mode to 100 characters to make the output useful for long input texts.
2001-06-27Update.Ulrich Drepper
* posix/Makefile: Add rules to build and run tst-regex. 2001-06-20 Isamu Hasegawa <isamu@yamato.ibm.com> * posix/regex.c (FREE_WCS_BUFFERS): New macro to free buffers. (re_search_2): invoke convert_mbs_to_wcs and FREE_WCS_BUFFERS. (wcs_re_match_2_internal): Check whether the wcs buffers need seting up or not, and skip seting up routin if not needed. 2001-06-26 Isamu Hasegawa <isamu@yamato.ibm.com> * posix/regex.c (count_mbs_length): Use binary search for optimization. 2001-06-27 Ulrich Drepper <drepper@redhat.com>
2001-06-27Fix several bugs. Add more tests.Ulrich Drepper
2001-06-26Update.Ulrich Drepper
2001-06-22 Jakub Jelinek <jakub@redhat.com> * posix/regex.c (regex_compile, re_match_2_internal): Fix comment typos. 2001-06-01 Wolfram Gloger <wg@malloc.de> * malloc/malloc.c (malloc_atfork, free_atfork): Use a unique value ATFORK_ARENA_PTR, not 0, for the thread-specific arena pointer when malloc_atfork is in use.
2001-06-26Add copyright notice.Ulrich Drepper
2001-06-19Update.Ulrich Drepper
2001-06-17 Alan Modra <amodra@bigpond.net.au> * sysdeps/hppa/dl-machine.h (elf_machine_rela): handle relocs at unaligned address.
2001-06-17* posix/spawni.c: Moved to ...Roland McGrath
* sysdeps/posix/spawni.c: ... here. * sysdeps/generic/spawni.c: New file.
2001-06-10Update.Ulrich Drepper
2001-06-08 Andreas Schwab <schwab@suse.de> * posix/regex.c (re_match_2_internal) [case wordbeg, wordend]: Don't dereference at end of string.
2001-05-30Update.Ulrich Drepper
2001-05-29 Jakub Jelinek <jakub@redhat.com> * sunrpc/rpc/types.h (u_char, u_short, u_int, u_long, quad_t, u_quad_t, fsid_t, daddr_t, caddr_t): Make sure the types are defined. * posix/sys/types.h (u_char, u_short, u_int, u_long, quad_t, u_quad_t, fsid_t, daddr_t, caddr_t): Protect the __USE_BSD typedefs against multiple definition.
2001-05-23Update.Ulrich Drepper
2001-05-23 kaz Kojima <kkojima@rr.iij4u.or.jp> * sysdeps/sh/dl-machine.h (_dl_runtime_resolve): Handle newer PLT. (_dl_runtime_profile): Likewise.. 2001-05-23 Thorsten Kukuk <kukuk@suse.de> * sysdeps/posix/getaddrinfo.c: Support for AF_UNIX commented out. * posix/tst-getaddrinfo.c: Remove AF_UNIX test. 2001-05-19 H.J. Lu <hjl@gnu.org> * elf/dl-deps.c (_dl_map_object_deps): Pass objname and errstring of the failed DSO to _dl_signal_error ().
2001-05-14Update.Andreas Jaeger
2001-05-14 Andreas Jaeger <aj@suse.de> * sysdeps/i386/fpu/libm-test-ulps: Adjust for new tests. * math/libm-test.inc (tanh_test): Add testcases for last tanh bug. 2001-05-14 Stephen L Moshier <moshier@mediaone.net> * sysdeps/ieee754/ldbl-96/s_tanhl.c (__tanhl): Fix sign test. 2001-05-11 Jakub Jelinek <jakub@redhat.com> * posix/regex.c (re_match_2_internal): Swap mbs_offset and csize as well if swapping strings. Make sure stop is not past end of second string. * posix/bug-regex4.c: New test. * posix/Makefile (tests): Add bug-regex4. 2001-05-10 Andreas Jaeger <aj@suse.de> * manual/install.texi (Linux): Clarify that Linux 2.2 is minimal requirement.
2001-04-30Update.Andreas Jaeger
2001-04-30 Jakub Jelinek <jakub@redhat.com> * posix/confstr.c (confstr) [_CS_V6_WIDTH_RESTRICTED_ENVS]: Move so that _CS_LFS_CFLAGS can fall through to the empty returned string case. Add FALLTHROUGH comment.
2001-04-25Update.Ulrich Drepper
* sysdeps/generic/bits/confname.h: Add _CS_V6_WIDTH_RESTRICTED_ENVS. * posix/confstr.c: Handle _CS_V6_WIDTH_RESTRICTED_ENVS. * posix/getconf.c: Handle _POSIX_V6_WIDTH_RESTRICTED_ENVS. * posix/tst-getconf.sh: Add _POSIX_V6_WIDTH_RESTRICTED_ENVS.
2001-04-24Update.Ulrich Drepper
2001-04-24 Ulrich Drepper <drepper@redhat.com> * sysdeps/ia64/Dist: Add hp-timing.c. * sysdeps/unix/sysv/linux/sparc/sparc64/Dist: Add ucontext_i.h. * posix/Makefile (distribute): Add tst-getconf.sh. * po/Makefile (distribute): Add $(BROKEN_LINGUAS:=.po).
2001-04-22Update.Ulrich Drepper
2001-04-22 Ulrich Drepper <drepper@redhat.com> * posix/getconf.c: Fix names of XBS5 LFS test variables. Add missing configuration variables from XPG6. * posix/tst-getconf.c: New file. * posix/Makefile (generated): Add tst-getconf.out. (tests): Add ($objpfx)tst-getconf.out. Add rule to run tst-getconf.sh. * sysdeps/generic/bits/confname.h: Add missing _PC_ and _SC_ values from XPG6. * sysdeps/posix/fpathconf.c: Add handling of _PC_ALLOC_SIZE_MIN and _PC_SYMLINK_MAX. * sysdeps/posix/pathconf.c: Likewise. * sysdeps/posix/sysconf.c: Correct spelling of _SC_MULTI_PROCESS and _SC_SYMLOOP_MAX.
2001-04-22Update.Ulrich Drepper
* sysdeps/generic/bits/confname.h: Add _SC_V6_* and _CS_POSIX_V6_* values. * sysdeps/generic/bits/environments.h: Define _POSIX_V6_* values. * posix/confstr.c: Handle _CS_POSIX_V6_* values. * posix/getconf.c: Handle _CS_POSIX_V6_* and _SC_V6_* values. * sysdeps/posix/sysconf.c: Handle _SC_V6_* values.
2001-04-22Update.Ulrich Drepper
2001-04-21 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> * sysdeps/unix/sysv/linux/powerpc/mmap64.c: Correct check for invalid offset. 2001-04-21 Ulrich Drepper <drepper@redhat.com> * posix/getopt.h: Treat __cplusplus like __STDC__. 2001-04-20 John S. Marvin <jsm@fc.hp.com> * sysdeps/unix/sysv/linux/hppa/clone.S: Fix clone system call entry point stub. 2001-04-20 Richard Hirst <rhirst@linuxcare.com> * elf/elf.h: Corrected R_PARISC_DIR14R (should be 6, not 5), and added R_PARISC_DPREL21L and R_PARISC_DPREL14R for modutils. * sysdeps/unix/sysv/linux/hppa/syscalls.list: Removed ptrace entry so the ptrace.c wrapper is used. 2001-04-20 Alan Modra <amodra@one.net.au> * sysdeps/hppa/dl-lookupcfg.h (_dl_function_address): Prototype. (DL_FUNCTION_ADDRESS): Define. (DL_DT_INIT_ADDRESS): Define. (DL_DT_FINI_ADDRESS): Define. * sysdeps/hppa/Versions: Add _dl_function_address. * sysdeps/hppa/dl-machine.h (ELF_MACHINE_START_ADDRESS): Define. * sysdeps/hppa/dl-symaddr.c (_dl_start_address): Rename to _dl_function_address.
2001-04-05Update.Ulrich Drepper
2001-04-04 Ulrich Drepper <drepper@redhat.com> * posix/fnmatch_loop.c: Undefine NEW_PATTERN when it is not used anymore.
2001-04-04Update.Ulrich Drepper
2001-03-29 Michael Keezer <mkeezer@redhat.com> * posix/tst-gnuglob.c: Added ifdef _DIRENT_HAVE_D_TYPE. * login/tst-utmp.c: Handle case where ut_tv is not available but ut_time is. * sysdeps/unix/sysv/aix/utmpx.h: New file. * sysdeps/unix/sysv/aix/bits/utmpx.h: Added _HAVE_UT_TYPE/PID/ID/TV/HOST defines. * sysdeps/unix/sysv/aix/libc-start.c: Removed temp code and made stub. * sysdeps/unix/sysv/aix/gettimeofday.c: New file added routines to access RTCU timer reg. * sysdeps/unix/sysv/aix/Makefile: Remove /usr/lib/crt0.o added dl-libc, dl-open,dl-sym, dl-close to misc. * sysdeps/unix/sysv/aix/start.c: New file. Start code. * sysdeps/unix/sysv/aix/dlldr.h: New file. AIX __loadx defines. * sysdeps/unix/sysv/aix/dl-close.c: New file. AIX dl-close. * sysdeps/unix/sysv/aix/dl-open.c: New file. AIX dl-open. * sysdeps/unix/sysv/aix/dl-sym.c: New file. AIX dl-sym. * sysdeps/unix/sysv/aix/dl-libc.c: New file. libc_dl-xxx support. * sysdeps/generic/strtoll.c: Added SHLIB_COMPAT(libc,GLIBC_2_0, GLIBC_2_2). * sysdeps/generic/strtoull.c: Likewise. * sysdeps/powerpc/ppc-mcount.S: Added nop after bl instruction. * sysdeps/unix/sysv/aix/powerpc/memset.c: New file to include sysdeps/generic/memset.c. * sysdeps/unix/sysv/aix/getpeername.c: Define __getpeername.
2001-04-04Update.Ulrich Drepper
2001-04-03 Ulrich Drepper <drepper@redhat.com> * misc/dirname.c (dirname): Handle multiple slashes correctly. 2001-04-03 Martin Schwidefsky <schwidefsky@de.ibm.com> * sysdeps/s390/s390-64/initfini.c: Fix __gmon_start__ GOT access. 2001-04-03 Martin Schwidefsky <schwidefsky@de.ibm.com> * sysdeps/s390/s390-32/bcopy.S: Optimize for speed. * sysdeps/s390/s390-64/bcopy.S: Likewise. * sysdeps/s390/s390-32/mempcy.S: Likewise. * sysdeps/s390/s390-64/memcpy.S: Likewise. 2001-04-02 Bruno Haible <haible@clisp.cons.org> * manual/message.texi (Advanced gettext functions): More specific syntax in the plural formula examples. 2001-04-02 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> * sysdeps/powerpc/atomicity.h: Silence warnings. * sysdeps/powerpc/dl-machine.h: Likewise. * sysdeps/powerpc/register-dump.h: Likewise. * sysdeps/powerpc/fpu/s_lrint.c: Likewise. 2001-04-02 Andreas Jaeger <aj@suse.de> * misc/tst-dirname.c (main): Add more tests, derived from a bug report by Michael Kerrisk <mtk16@ext.canterbury.ac.nz>. 2001-04-01 Andreas Jaeger <aj@suse.de> * debug/xtrace.sh (pcprofileso): Use SLIBDIR since libpcprofile.so is installed there. * malloc/memusage.sh (memusageso): Likewise for libmemusage.so. 2001-04-01 H.J. Lu <hjl@gnu.org> * posix/annexc.c (macrofile): Renamed from TMPFILE and set to tmpnam (NULL). * stdlib/isomac.c (macrofile): Likewise. 2001-03-30 Thorsten Kukuk <kukuk@suse.de> * inet/rcmd.c: Allow AF_UNSPEC as parameter. * nis/ypclnt.c (yp_all): Print error message only at last try, check for protocoll error only if we don't have a network error.
2001-03-30Avoid an access violation if malloc failes.Ulrich Drepper
2001-03-30Update.Ulrich Drepper
* posix/regex.c: Remove unnecessary ifs.