Hunt v. Cromartie
Hunt v. Cromartie | |||||||
---|---|---|---|---|---|---|---|
|
|||||||
Argued August 4, 1999 Decided May 17, 1999 |
|||||||
Full case name | James B. Hunt, Jr., Governor of North Carolina, et al., Appellants v. Martin Cromartie, et al. | ||||||
Citations | 526 U.S. 541 (more) | ||||||
Holding | |||||||
The 12th district of North Carolina as drawn was unconstitutional because it was created for the purpose of placing African Americans in one district, thereby constituting illegal racial gerrymandering. | |||||||
Court membership | |||||||
|
|||||||
Case opinions | |||||||
Majority | Thomas, joined by Rehnquist, O'Connor, Scalia, Kennedy | ||||||
Concurrence | Stevens, joined by Souter, Ginsburg, Breyer | ||||||
Laws applied | |||||||
U.S. Const. amend. XIV |
Hunt v. Cromartie, 526 U.S. 541 (1999), was a United States Supreme Court case regarding North Carolina's 12th congressional district. In an earlier case, Shaw v. Reno, 517 U.S. 899 (1995), the Supreme Court ruled that the 12th district of North Carolina as drawn was unconstitutional because it was created for the purpose of placing African Americans in one district, thereby constituting illegal racial gerrymandering. The Court ordered the state of North Carolina to redraw the boundaries of the district.
In this follow-up case, the Supreme Court ruled that the state was able to justify the new boundaries of the 12th district by showing that it was intended to create a safe seat for Democrats, and therefore the redrawn district was a constitutional example of political gerrymandering. Justice O'Connor acted as the swing vote, satisfied with the change in reasoning since Shaw v. Reno.
See also
- Easley v. Cromartie, 532 U.S. 234 (2001)
- Shaw v. Reno, 509 U.S. 630 (1993)
- List of United States Supreme Court cases, volume 526
Further reading
- require('Module:No globals')
local function getCatForId( id )
local title = mw.title.getCurrentTitle() local namespace = title.namespace if namespace == 0 then
return ''
elseif namespace == 2 and not title.isSubpage then
return ''
else
return ''
end
end
local function viafLink( id )
if not string.match( id, '^%d+$' ) then return false end return '.. id .. ' ' .. id .. '' .. getCatForId( 'VIAF' )
end
local function kulturnavLink( id )
return '.. id .. ' id'
end
local function sikartLink( id )
return '.. id .. '&lng=en ' .. id .. ''
end
local function tlsLink( id ) local id2 = mw.ustring.gsub(id, '%s', function(s) return mw.uri.encode(s, 'WIKI') end)
return '.. id2 .. ' ' .. id .. ''
end
local function ciniiLink( id )
return '.. id .. '?l=en ' .. id .. ''
end
local function bneLink( id )
return '.. id .. ' ' .. id .. ''
end
local function uscongressLink( id )
return '.. id .. ' ' .. id .. ''
end
local function narapersonLink( id )
return '.. id .. ' ' .. id .. ''
end
local function naraorganizationLink( id )
return '.. id .. ' ' .. id .. ''
end
local function botanistLink( id ) local id2 = mw.ustring.gsub(id, '%s', function(s) return mw.uri.encode(s, 'PATH') end)
return '.. id2 .. ' ' .. id .. ''
end
local function mgpLink( id )
-- TODO Implement some sanity checking regex return '.. id .. ' ' .. id .. ''
end
local function rslLink( id )
-- TODO Implement some sanity checking regex return '.. id .. '&CON_LNG=ENG ' .. id .. ''
end
local function leonoreLink( id ) -- Identifiants allant de LH/1/1 à LH/2794/54 (légionnaires) -- Identifiants allant de C/0/1 à C/0/84 (84 légionnaires célèbres) -- Identifiants allant de 19800035/1/1 à 19800035/385/51670 (légionnaires décédés entre 1954 et 1977, et quelques dossiers de légionnaires décédés avant 1954)
if not string.match( id, '^LH/%d%d?%d?%d?/%d%d?%d?$' ) and not string.match( id, '^C/0/%d%d?$' ) and not string.match( id, '^19800035/%d%d?%d?%d?/%d%d?%d?%d?%d?$' ) then return false end return '.. id .. ' ' .. id .. ''
end
local function sbnLink( id )
if not string.match( id, '^IT\\ICCU\\%d%d%d%d%d%d%d%d%d%d$' ) and not string.match( id, '^IT\\ICCU\\%u%u[%d%u]%u\\%d%d%d%d%d%d$' ) then return false end return '.. id .. ' ' .. id .. '' .. getCatForId( 'SBN' )
end
local function nkcLink( id ) return '.. id .. '&CON_LNG=ENG ' .. id .. '' end
local function nclLink( id )
if not string.match( id, '^%d+$' ) then return false end return '.. id .. '&CON_LNG=ENG ' .. id .. ''
end
local function ndlLink( id ) return '.. id .. ' ' .. id .. '' end
local function sudocLink( id )
if not string.match( id, '^%d%d%d%d%d%d%d%d[%dxX]$' ) then return false end return '.. id .. ' ' .. id .. ''
end
local function hlsLink( id )
if not string.match( id, '^%d+$' ) then return false end return '.. id .. '.php ' .. id .. ''
end
local function lirLink( id )
if not string.match( id, '^%d+$' ) then return false end return '.. id .. '.450.0.html ' .. id .. ''
end
local function splitLccn( id )
if id:match( '^%l%l?%l?%d%d%d%d%d%d%d%d%d?%d?$' ) then id = id:gsub( '^(%l+)(%d+)(%d%d%d%d%d%d)$', '%1/%2/%3' ) end if id:match( '^%l%l?%l?/%d%d%d?%d?/%d+$' ) then return mw.text.split( id, '/' ) end return false
end
local function append(str, c, length)
while str:len() < length do str = c .. str end return str
end
local function lccnLink( id )
local parts = splitLccn( id ) if not parts then return false end local lccnType = parts[1] ~= 'sh' and 'names' or 'subjects' id = parts[1] .. parts[2] .. append( parts[3], '0', 6 ) return '.. lccnType .. '/' .. id .. ' ' .. id .. '' .. getCatForId( 'LCCN' )
end
local function mbLink( id )
-- TODO Implement some sanity checking regex return '.. id .. ' ' .. id .. '' .. getCatForId( 'MusicBrainz' )
end
--Returns the ISNI check digit isni must be a string where the 15 first elements are digits local function getIsniCheckDigit( isni )
local total = 0 for i = 1, 15 do local digit = isni:byte( i ) - 48 --Get integer value total = (total + digit) * 2 end local remainder = total % 11 local result = (12 - remainder) % 11 if result == 10 then return "X" end return tostring( result )
end
--Validate ISNI (and ORCID) and retuns it as a 16 characters string or returns false if it's invalid --See http://support.orcid.org/knowledgebase/articles/116780-structure-of-the-orcid-identifier local function validateIsni( id )
id = id:gsub( '[ %-]', ):upper() if not id:match( '^%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d[%dX]$' ) then return false end if getIsniCheckDigit( id ) ~= string.char( id:byte( 16 ) ) then return false end return id
end
local function isniLink( id )
id = validateIsni( id ) if not id then return false end return '.. id .. ' ' .. id:sub( 1, 4 ) .. ' ' .. id:sub( 5, 8 ) .. ' ' .. id:sub( 9, 12 ) .. ' ' .. id:sub( 13, 16 ) .. '' .. getCatForId( 'ISNI' )
end
local function orcidLink( id )
id = validateIsni( id ) if not id then return false end id = id:sub( 1, 4 ) .. '-' .. id:sub( 5, 8 ) .. '-' .. id:sub( 9, 12 ) .. '-' .. id:sub( 13, 16 ) return '.. id .. ' ' .. id .. '' .. getCatForId( 'ORCID' )
end
local function gndLink( id )
return '.. id .. ' ' .. id .. '' .. getCatForId( 'GND' )
end
local function selibrLink( id ) if not string.match( id, '^%d+$' ) then
return false end return '.. id .. ' ' .. id .. '' .. getCatForId( 'SELIBR' )
end
local function bnfLink( id )
--Add cb prefix if it has been removed if not string.match( id, '^cb.+$' ) then id = 'cb' .. id end
return '.. id .. ' ' .. id .. ' .. id .. ' (data)' .. getCatForId( 'BNF' )
end
local function bpnLink( id )
if not string.match( id, '^%d+$' ) then return false end return '.. id .. ' ' .. id .. '' .. getCatForId( 'BPN' )
end
local function ridLink( id )
return '.. id .. ' ' .. id .. '' .. getCatForId( 'RID' )
end
local function bibsysLink( id )
return '.. id .. '&feltselect=bs.autid ' .. id .. '' .. getCatForId( 'BIBSYS' )
end
local function ulanLink( id )
return '.. id .. ' ' .. id .. '' .. getCatForId( 'ULAN' )
end
local function nlaLink( id ) return '.. id .. ' ' .. id .. '' .. getCatForId( 'NLA' ) end
local function rkdartistsLink( id ) return '.. id .. ' ' .. id .. '' .. getCatForId( 'RKDartists' ) end
local function getIdsFromWikidata( item, property )
local ids = {} if not item.claims[property] then return ids end for _, statement in pairs( item.claims[property] ) do if statement.mainsnak.datavalue then table.insert( ids, statement.mainsnak.datavalue.value ) end end return ids
end
local function matchesWikidataRequirements( item, reqs )
for _, group in pairs( reqs ) do local property = 'p' .. group[1] local qid = group[2] if item.claims[property] ~= nil then for _, statement in pairs ( item.claims[property] ) do if statement.mainsnak.datavalue ~= nil then if statement.mainsnak.datavalue.value['numeric-id'] == qid then return true end end end end end return false
end
local function createRow( id, label, rawValue, link, withUid )
if link then
if withUid then
return '* ' .. label .. ' ' .. link .. '\n'
else
return '* ' .. label .. ' ' .. link .. '\n'
end
else
return '* \n'
end
end
--In this order: name of the parameter, label, propertyId in Wikidata, formatting function local conf = {
{ 'VIAF', 'VIAF', 214, viafLink }, { 'LCCN', 'LCCN', 244, lccnLink }, { 'ISNI', 'ISNI', 213, isniLink }, { 'ORCID', 'ORCID', 496, orcidLink }, { 'GND', 'GND', 227, gndLink }, { 'SELIBR', 'SELIBR', 906, selibrLink }, { 'SUDOC', 'SUDOC', 269, sudocLink }, { 'BNF', 'BNF', 268, bnfLink }, { 'BPN', 'BPN', 651, bpnLink }, { 'RID', 'ResearcherID', 1053, ridLink }, { 'BIBSYS', 'BIBSYS', 1015, bibsysLink }, { 'ULAN', 'ULAN', 245, ulanLink }, { 'HDS', 'HDS', 902, hlsLink }, { 'LIR', 'LIR', 886, lirLink }, { 'MBA', 'MusicBrainz', 434, mbLink }, { 'MGP', 'MGP', 549, mgpLink }, { 'NLA', 'NLA', 409, nlaLink }, { 'NDL', 'NDL', 349, ndlLink }, { 'NCL', 'NCL', 1048, nclLink }, { 'NKC', 'NKC', 691, nkcLink }, { 'Léonore', 'Léonore', 640, leonoreLink }, { 'SBN', 'ICCU', 396, sbnLink }, { 'RLS', 'RLS', 947, rslLink }, { 'Botanist', '[[Author ci
External links
- Full Text of the opinion
- WorldHeritage articles with ' .. id .. ' identifiers
- User pages with ' .. id .. ' identifiers
- Miscellaneous pages with ' .. id .. ' identifiers
- WorldHeritage articles with faulty authority control identifiers (' .. id .. ')
- United States equal protection case law
- United States Supreme Court cases
- United States electoral redistricting case law
- Legal history of North Carolina
- 1999 in United States case law
- 1999 in North Carolina
- Congressional districts of North Carolina
- American Civil Liberties Union litigation
- United States Supreme Court cases of the Rehnquist Court