use utf8;
use warnings; no warnings "redefine";
use strict;
use Dbase::Globals qw(flag_names);
use Dbase::Help qw(Do DoFn);
use Loader qw(log_update select_flags);

sub set_hardware_flags($;$) {
	my ( $id, $kn ) = @_;

	my $kl = DoFn("SELECT flags FROM hardware WHERE id = $id");
	defined( my $nkl = select_flags( $kl, hardwareflags => Flags => '!hide' ) )
	  or return;

	return $nkl if $kl == $nkl;

	log_update(
		hardware =>
		  id     => $id,
		undef,
		flags => undef,
		scalar flag_names( $nkl, hardwareflags => $kl )
	);
	Do("UPDATE hardware SET flags=$nkl WHERE id=$id");
}

1;
