forked from jirs5/gosigar-freebsd
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use NewLazySystemDLL instead of NewLazyDLL (#132)
* Use NewLazySystemDLL instead of NewLazyDLL The ensures that the code only search for DLLs in the Windows system directory. * Remove old go:generate call Putting this into doc.go which does not have build tags allows the code to be generated from non-windows OSes.
- Loading branch information
1 parent
356ba2b
commit c93349b
Showing
5 changed files
with
74 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,8 @@ | ||
// Package windows contains various Windows system call. | ||
package windows | ||
|
||
// Use "go generate -v -x ." to generate the source. | ||
|
||
// Add -trace to enable debug prints around syscalls. | ||
//go:generate go run $GOROOT/src/syscall/mksyscall_windows.go -systemdll=true -output zsyscall_windows.go syscall_windows.go | ||
//go:generate go run fix_generated.go -input zsyscall_windows.go |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
// Licensed to Elasticsearch B.V. under one or more contributor | ||
// license agreements. See the NOTICE file distributed with | ||
// this work for additional information regarding copyright | ||
// ownership. Elasticsearch B.V. licenses this file to you under | ||
// the Apache License, Version 2.0 (the "License"); you may | ||
// not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, | ||
// software distributed under the License is distributed on an | ||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
// KIND, either express or implied. See the License for the | ||
// specific language governing permissions and limitations | ||
// under the License. | ||
|
||
//+build ignore | ||
|
||
package main | ||
|
||
import ( | ||
"flag" | ||
"io/ioutil" | ||
"log" | ||
"regexp" | ||
) | ||
|
||
func main() { | ||
var filename string | ||
|
||
log.SetFlags(0) | ||
flag.StringVar(&filename, "input", "", "name of generated source file to fix") | ||
flag.Parse() | ||
|
||
if filename == "" { | ||
log.Fatal("Name of generated file must be specified with -input flag") | ||
} | ||
|
||
if err := fixGeneratedCode(filename); err != nil { | ||
log.Fatal(err) | ||
} | ||
} | ||
|
||
var lazySystemRegex = regexp.MustCompile(`(?m)\sNewLazySystemDLL`) | ||
var unsafeImportRegex = regexp.MustCompile(`(?m)"unsafe"`) | ||
|
||
// fixGeneratedCode adds "windows." to locations in the generated source code | ||
// that reference "NewLazySystemDLL" without the package name. | ||
func fixGeneratedCode(filename string) error { | ||
data, err := ioutil.ReadFile(filename) | ||
if err != nil { | ||
return err | ||
} | ||
|
||
data = lazySystemRegex.ReplaceAll(data, []byte(" windows.NewLazySystemDLL")) | ||
data = unsafeImportRegex.ReplaceAll(data, []byte(`"unsafe"`+"\n\n\t"+`"golang.org/x/sys/windows"`)) | ||
|
||
return ioutil.WriteFile(filename, data, 0644) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.