The General Assembly has approved a broad indoor smoking ban. The measure goes to Gov. Beverly Perdue to be signed into law.