view src/VisVim/Reg.cpp @ 8316:058b9e4a291b v7.4.1450

commit https://github.com/vim/vim/commit/1c39102666d2ccb998059bd7ada2d2efa31a11bc Author: Bram Moolenaar <Bram@vim.org> Date: Sun Feb 28 18:04:00 2016 +0100 patch 7.4.1450 Problem: Json encoding still fails when encoding is not utf-8. Solution: Set 'encoding' before :scriptencoding. Run the json test separately to avoid affecting other tests.
author Christian Brabandt <cb@256bit.org>
date Sun, 28 Feb 2016 18:15:04 +0100
parents 3fc0f57ecb91
children
line wrap: on
line source

#include "stdafx.h"

// Returns key for HKEY_CURRENT_USER\"Software"\Company\AppName
// creating it if it doesn't exist
// responsibility of the caller to call RegCloseKey() on the returned HKEY
//
HKEY GetAppKey (char* AppName)
{
	HKEY hAppKey = NULL;
	HKEY hSoftKey = NULL;
	if (RegOpenKeyEx (HKEY_CURRENT_USER, "Software", 0, KEY_WRITE | KEY_READ,
		&hSoftKey) == ERROR_SUCCESS)
	{
		DWORD Dummy;
		RegCreateKeyEx (hSoftKey, AppName, 0, REG_NONE,
			REG_OPTION_NON_VOLATILE, KEY_WRITE | KEY_READ, NULL,
			&hAppKey, &Dummy);
	}
	if (hSoftKey)
		RegCloseKey (hSoftKey);

	return hAppKey;
}

// Returns key for
// HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\Section
// creating it if it doesn't exist.
// responsibility of the caller to call RegCloseKey () on the returned HKEY
//
HKEY GetSectionKey (HKEY hAppKey, LPCTSTR Section)
{
	HKEY hSectionKey = NULL;
	DWORD Dummy;
	RegCreateKeyEx (hAppKey, Section, 0, REG_NONE,
		REG_OPTION_NON_VOLATILE, KEY_WRITE|KEY_READ, NULL,
		&hSectionKey, &Dummy);
	return hSectionKey;
}

int GetRegistryInt (HKEY hSectionKey, LPCTSTR Entry, int Default)
{
	DWORD Value;
	DWORD Type;
	DWORD Count = sizeof (DWORD);
	if (RegQueryValueEx (hSectionKey, (LPTSTR) Entry, NULL, &Type,
			     (LPBYTE) &Value, &Count) == ERROR_SUCCESS)
		return Value;
	return Default;
}

bool WriteRegistryInt (HKEY hSectionKey, char* Entry, int nValue)
{
	return RegSetValueEx (hSectionKey, Entry, NULL, REG_DWORD,
		(LPBYTE) &nValue, sizeof (nValue)) == ERROR_SUCCESS;
}